【python argparse如何输出指定参数的帮助 help 内容】自定义帮助信息方法 包含所有帮助方法

通过一个完整的示例来展示如何使用自定义的帮助信息来输出特定参数的帮助内容。这个示例将包括一个脚本,该脚本接受一个特殊参数 --show-help-for,用于显示指定参数的帮助信息。

示例脚本:my_program.py

import argparse

def main():
    # 创建解析器
    parser = argparse.ArgumentParser(description='示例程序')
    
    # 添加参数
    parser.add_argument('--foo', dest='foo_value', type=int, default=42, help='foo参数的帮助信息')
    parser.add_argument('--bar', type=str, help='bar参数的帮助信息')
    parser.add_argument('--show-help-for', metavar='PARAMETER', help='显示特定参数的帮助信息')
    
    # 解析命令行参数
    args = parser.parse_args()
    
    # 如果提供了 --show-help-for 参数,则显示特定参数的帮助信息
    if args.show_help_for:
        # 获取特定参数的帮助信息
        for action in parser._actions:
            if action.dest == args.show_help_for.replace('-', '') or action.option_strings == [args.show_help_for]:
                print(f"帮助信息 for {args.show_help_for}: {action.help}")
                return
        print(f"参数 {args.show_help_for} 不存在。")
    else:
        # 否则,显示所有参数的帮助信息
        parser.print_help()

if __name__ == "__main__":
    main()

运行示例

  1. 显示所有参数的帮助信息:

    python my_program.py --help
    

    输出:

    用法:my_program.py [OPTIONS]
    
    示例程序
    
    选项:
      --foo INTEGER         foo参数的帮助信息
      --bar TEXT           bar参数的帮助信息
      --show-help-for PARAMETER  显示特定参数的帮助信息
    
    帮助选项:
      -h, --help          显示此帮助消息并退出
    
  2. 显示特定参数(例如 --foo)的帮助信息:

    python my_program.py --show-help-for --foo
    

    输出:

    帮助信息 for --foo: foo参数的帮助信息
    
  3. 尝试显示不存在的参数的帮助信息:

    python my_program.py --show-help-for --baz
    

    输出:

    参数 --baz 不存在。
    

这个示例展示了如何根据用户输入的参数名称来显示特定参数的帮助信息。如果用户没有指定 --show-help-for 参数,程序将显示所有参数的帮助信息。如果用户指定了一个不存在的参数名称,程序将输出一个错误消息。

如何在查询帮助信息的同时输出查询参数的值

argparse 自动生成的帮助信息中,默认值通常是会显示的,但是当我们使用 print(f"帮助信息 for {args.show_help_for}: {action.help}") 这样的代码手动打印帮助信息时,我们只获取了参数的 help 属性,而没有包括默认值。

为了在自定义的帮助信息中包含默认值,我们需要手动添加这个信息。我们可以通过检查参数是否有 default 值,并将其添加到帮助信息中。

以下是修改后的代码,它将在帮助信息中包含默认值(如果有的话):

import argparse

def main():
    # 创建解析器
    parser = argparse.ArgumentParser(description='示例程序')
    
    # 添加参数
    parser.add_argument('--foo', dest='foo_value', type=int, default=42, help='foo参数的帮助信息')
    parser.add_argument('--bar', type=str, help='bar参数的帮助信息')
    parser.add_argument('--show-help-for', metavar='PARAMETER', help='显示特定参数的帮助信息')
    
    # 解析命令行参数
    args = parser.parse_args()
    
    # 如果提供了 --show-help-for 参数,则显示特定参数的帮助信息
    if args.show_help-for:
        # 获取特定参数的帮助信息
        for action in parser._actions:
            if action.dest == args.show_help_for.replace('-', '') or action.option_strings == [args.show_help_for]:
                # 获取帮助信息和默认值
                help_text = action.help
                default_text = f" (默认值: {action.default})" if action.default is not argparse.SUPPRESS else ""
                print(f"帮助信息 for {args.show_help_for}: {help_text}{default_text}")
                return
        print(f"参数 {args.show_help_for} 不存在。")
    else:
        # 否则,显示所有参数的帮助信息
        parser.print_help()

if __name__ == "__main__":
    main()

在这个修改后的代码中,我们检查每个参数的 default 值,并将其添加到帮助信息中。如果参数没有默认值,或者默认值是 argparse.SUPPRESS(意味着不应该显示默认值),那么我们就不添加默认值信息。

现在,当我们运行以下命令时:

python my_program.py --show-help-for --foo

输出将会是:

帮助信息 for --foo: foo参数的帮助信息 (默认值: 42)

这样,我们就在自定义的帮助信息中包含了默认值。

另一种方法是使用环境变量来控制输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flos chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值