首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【python argparse如何输出指定参数的帮助 help 内容】自定义帮助信息方法 包含所有帮助方法

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

作者头像
flos chen
发布2026-01-23 15:19:58
发布2026-01-23 15:19:58
850
举报

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

示例脚本:my_program.py
代码语言:javascript
复制
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()
运行示例

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

代码语言:javascript
复制
python my_program.py --help

输出:

代码语言:javascript
复制
用法:my_program.py [OPTIONS]

示例程序

选项:
  --foo INTEGER         foo参数的帮助信息
  --bar TEXT           bar参数的帮助信息
  --show-help-for PARAMETER  显示特定参数的帮助信息

帮助选项:
  -h, --help          显示此帮助消息并退出

显示特定参数(例如 --foo)的帮助信息:

代码语言:javascript
复制
python my_program.py --show-help-for --foo

输出:

代码语言:javascript
复制
帮助信息 for --foo: foo参数的帮助信息

尝试显示不存在的参数的帮助信息:

代码语言:javascript
复制
python my_program.py --show-help-for --baz

输出:

代码语言:javascript
复制
参数 --baz 不存在。

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

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

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

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

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

代码语言:javascript
复制
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(意味着不应该显示默认值),那么我们就不添加默认值信息。

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

代码语言:javascript
复制
python my_program.py --show-help-for --foo

输出将会是:

代码语言:javascript
复制
帮助信息 for --foo: foo参数的帮助信息 (默认值: 42)

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

另一种方法是使用环境变量来控制输出
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 示例脚本:my_program.py
  • 运行示例
  • 如何在查询帮助信息的同时输出查询参数的值
  • 另一种方法是使用环境变量来控制输出
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档