使用 Python 的argparse模块时,您可以使用parse_known_args()
它仅解析解析器已知的参数,并且单独返回任何其他参数。
然而,这个事实并没有在用法/帮助字符串中表示。当然我可以把它放在description
解析器的领域,但我想知道是否有一种很好的方法可以将它包含在使用行中。
我正在寻找的是例如的输出usage: test [-h] ...
而不是usage: test [-h]
使用 Python 的argparse模块时,您可以使用parse_known_args()
它仅解析解析器已知的参数,并且单独返回任何其他参数。
然而,这个事实并没有在用法/帮助字符串中表示。当然我可以把它放在description
解析器的领域,但我想知道是否有一种很好的方法可以将它包含在使用行中。
我正在寻找的是例如的输出usage: test [-h] ...
而不是usage: test [-h]
我认为您可以结合format_usage()
和 ArgumentParser 属性来做到这一点usage
。请注意,该部分将用法显示为构造函数的关键字参数,但是,检查源代码表明usage
您可以在构造后访问它作为parser.usage
.
我想你的最终解决方案看起来像:
parser = argparse.ArgumentParser()
# Add arguments...
usage = parser.format_usage()
parser.usage = usage.rstrip() + ' ...\n'
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