【问题标题】:Argparse argument generated help, 'metavar' with choicesargparse 参数生成帮助,'metavar' 有选择
【发布时间】:2013-12-02 12:57:22
【问题描述】:

当使用带有关键字choices 的参数(可选的和位置的都有这个问题)时,生成的帮助输出会显示这些选项。

如果同一参数还包含 metavar 关键字,则生成的输出中将省略选项列表。

我的想法是在usage 行中显示metavar,但实际上在“自动帮助”列出位置/可选参数详细信息时显示可用选项。

任何简单的修复/解决方法?


我已经为自定义帮助功能启动了一个 argparse 包装器。也许这应该是我的 TODO 列表中的另一个功能。

【问题讨论】:

  • 是的,HelpFormatter 的子类化是改变帮助格式的“认可”方式。提供的示例执行简单的操作,例如更改文本的换行方式。如果不深入研究代码,我不能说您的更改是微不足道的还是复杂的。

标签: python argparse


【解决方案1】:

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

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}

【讨论】:

  • 这绝对符合简单修复的条件。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-11
  • 2021-09-04
  • 2016-03-24
  • 2020-10-12
  • 2011-07-24
  • 2021-08-13
  • 1970-01-01
相关资源
最近更新 更多