Python中如何通过参数名获取argparse对应参数的帮助信息
实现方案
你需要的内容确实直接存储在argparse对象的内置属性中,不需要额外构造数据结构,可通过以下方式实现:
首先编写一个通用的获取函数,直接遍历parser的_actions列表即可,每个参数的配置都以Action对象的形式存在该列表中,其中dest属性对应参数的内部名称(即--some-option会自动转换为some_option),help属性就是你定义的帮助文本:
def get_arg_help(parser, arg_dest): for action in parser._actions: if action.dest == arg_dest: return action.help return None
使用示例
对应你给出的场景,调用方式如下:
import argparse parser = argparse.ArgumentParser() parser.add_argument('--some-option', help='Help text') # 输出指定参数的帮助文本 print(get_arg_help(parser, 'some_option')) # 输出结果为 Help text
子命令场景适配
如果你的脚本包含多子命令,只需要拿到对应子命令的parser对象,用同样的方法调用即可:
# 定义子命令 subparsers = parser.add_subparsers(dest='cmd') deploy_parser = subparsers.add_parser('deploy') deploy_parser.add_argument('--target-path', help='Deployment target directory') # 获取子命令参数的帮助文本 print(get_arg_help(deploy_parser, 'target_path')) # 输出 Deployment target directory
注意事项
_actions和_subparsers是argparse模块长期稳定的内部属性,从Python2.7到最新的3.12版本均未发生变更,兼容性可得到保证- 如果参数同时定义了短选项和长选项,只需要传入参数的
dest名称即可,不需要匹配选项字符串
内容的提问来源于stack exchange,提问作者Dmitrii Vinokurov
相关产品推荐
相关产品推荐

