argparse:是否将无法识别的选项视为位置选项



考虑一下:

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-解析