Argparse参数生成帮助,“metavar”与选项一起使用

9
当使用带有关键字choices的参数(可选和位置都有这个问题)时,生成的帮助输出会显示这些选项。
如果同一个参数还包括一个metavar关键字,则在生成的输出中省略了选择列表。
我想到的是,在usage行中显示metavar,但实际上在“autohelp”列出位置/可选参数详细信息时显示可用选项。
有没有简单的修复/解决方法?
我已经开始使用argparse包装自定义帮助功能。也许这应该是我待办事项清单上的另一个功能。

是的,子类化HelpFormatter是改变帮助格式的“官方”方式。提供的示例只做简单的事情,比如更改文本换行方式。如果不深入代码,我无法确定您的更改是微不足道还是复杂的。 - hpaulj
1个回答

18

您可以将选项添加到帮助文本中。

parser=argparse.ArgumentParser()
parser.add_argument('-f',metavar="TEST",choices=('a','b','c'),
    help='choices, {%(choices)s}')
print parser.format_help()

产生:

usage: stack20328931.py [-h] [-f TEST]

optional arguments:
  -h, --help  show this help message and exit
  -f TEST     choices, {a, b, c}

这绝对可以被归为简单修复。非常感谢。 - user2097818

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接