有没有一种方法可以使argparse.ArgumentParser
在读取未知选项时不会引发异常,而是将所有带值的未知选项放入一个字典中,没有值的放入一个列表中?
例如,假设在解析器中没有定义任何参数,我向prog.py
传递了两个参数:
./prog.py --foo bar --baz
我想要以下内容:
parsed = parser.parse_args()
vals = parsed.unknown_with_vals
novals = parsed.unknown_without_vals
print(vals)
#{'foo' : 'bar'}
print(novals)
#['baz']
这个可以做到吗?
./prog.py --foo bar baz --quux
,你希望它做什么?字典应该是{"foo": ["bar", "baz"]}
吗?这个是否应该是一个错误?baz
应该被视为位置参数吗?基本上你正在要求一个全新的参数解析器:一般来说,最好只使用像 argparse.REMAINDER 值一样的nargs
将所有意外的参数累积到一个列表中,然后自己处理它:http://docs.python.org/library/argparse.html#nargs - ben w