使用Python的argparse模块时,您可以使用parse_known_args()
仅解析解析器已知的参数,并且单独返回任何其他参数。
但是,这个事实未在usage / help字符串中表示。当然我可以将它放在解析器的description
字段中,但我想知道是否有一种很好的方法将它包含在使用行中。
我正在寻找的是例如usage: test [-h] ...
代替usage: test [-h]
答案 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