考虑一下:
import argparse
p = argparse.ArgumentParser()
p.add_argument('foo', nargs='+')
p.add_argument('--bar')
p.parse_args(['-baz'])
失败:
error: unrecognized arguments: -baz
是否将ArgumentParser
配置为将无法识别的选项视为位置参数?
在上面的例子中,p.parse_args(["-baz"])
应该返回Namespace(foo=["-baz"])
。
'--'是一个伪arg,它告诉解析器将以下所有字符串视为位置字符串。
https://docs.python.org/3/library/argparse.html#arguments-包含
还探讨了使用parse_known_args
https://docs.python.org/3/library/argparse.html#partial-解析