请考虑:
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"])
。
parse_known_args
是我最好的选择。我认为如果我完全省略add_argument('foo', nargs='+')
调用,则可以使用parse_known_args
的元组结果的第二个元素代替foo
的值。 - Andrew Tomazos