Python argparse:在使用字符串中显示parse_known_args模式

时间:2012-07-26 22:29:36

标签: python argparse

使用Python的argparse模块时,您可以使用parse_known_args()仅解析解析器已知的参数,并且单独返回任何其他参数。

但是,这个事实未在usage / help字符串中表示。当然我可以将它放在解析器的description字段中,但我想知道是否有一种很好的方法将它包含在使用行中。

我正在寻找的是例如usage: test [-h] ...代替usage: test [-h]

2 个答案:

答案 0 :(得分:3)

我认为您可以使用format_usage()和ArgumentParser属性usage的组合来完成此操作。请注意,该部分显示用作构造函数的关键字参数,但是,检查usage parser.usage表示您可以在构建后以parser = argparse.ArgumentParser() # Add arguments... usage = parser.format_usage() parser.usage = usage.rstrip() + ' ...\n' 的形式访问它。

我想你的最终解决方案看起来像是:

{{1}}

答案 1 :(得分:2)

parse_known_args()是为了方便程序员编写程序,而不是程序用户需要担心的事情。如果您正确定义了命令行参数,argparse会自动为您提供类似的内容:

>>> import argparse
>>> p = argparse.ArgumentParser(prog='command')
>>> x=p.add_argument("foo", nargs=argparse.REMAINDER)
>>> p.parse_args(["--help"])
usage: command [-h] ...

positional arguments:
  foo

optional arguments:
  -h, --help  show this help message and exit