Argparse
显示有关选择列表的消息,如下例所示:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--styles', choices=long_list_of_styles)
当我传递一个长列表时,帮助信息看起来并不好,实际上它看起来很混乱,并且由于所有这些选择都被打印而影响其他参数。
有没有办法告诉Argparser
不打印参数选择?
答案 0 :(得分:3)
建议的副本Python's argparse choices constrained printing
提出了一个相对复杂的解决方案 - 自定义HelpFormatter
。或自定义type
。
更高的投票问题/答案是Python argparse: Lots of choices results in ugly help output
您可以通过[argparse] choices
搜索找到更多内容。
最简单的解决方案是设置metavar
参数。 None
在choices
广告位中没有显示任何内容,但您可能需要一个简短的字词
In [8]: styles=['one','two','three','four']
In [10]: parser = argparse.ArgumentParser()
In [11]: parser.add_argument('--styles', metavar='STYLE', choices=styles,
...: help='list of choices: {%(choices)s}')
Out[11]: _StoreAction(option_strings=['--styles'], dest='styles', nargs=None, const=None, default=None, type=None, choices=['one', 'two', 'three', 'four'], help='list of choices: {%(choices)s}', metavar='STYLE')
In [12]: parser.print_help()
usage: ipython3 [-h] [--styles STYLE]
optional arguments:
-h, --help show this help message and exit
--styles STYLE list of choices: {one, two, three, four}
我在帮助中包含%(choices)s
以列出它们。你当然可以把自己的总结放在那里。长列表比usage
更适合。