如何仅打印 ArgParse 特定参数的帮助字符串的内容

How to print just the content of the help string of a specific argument of ArgParse

有没有办法访问参数解析器库对象的特定参数的帮助字符串?

如果命令行上有该选项,我想打印帮助字符串内容。 不是 Argument Parser 可以通过 ArgumentParser.print_help 显示的完整帮助文本。

所以按照这些思路:

parser = argparse.ArgumentParser()

parser.add_argument("-d", "--do_x", help='the program will do X')

if do_x:
    print(parser.<WHAT DO I HAVE TO PUT HERE?>('do_x')

这是必需的行为

$程序-d

the program will do X

parser._option_string_actions,它是选项字符串(-d--do_x)和Action objects之间的映射。 Action.help 属性包含帮助字符串。

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("-d", "--do_x", action='store_true',
                    help='the program will do X')
args = parser.parse_args()
if args.do_x:
    print(parser._option_string_actions['--do_x'].help)
    # OR  print(parser._option_string_actions['-d'].help)

parser._actionsAction 对象的列表。您还可以在创建解析器时抓取对象。

a=parser.add_argument(...)
...

If args.do_x:
      print a.help

在交互式会话中与 argparse 一起玩。从这样的作业看a