argparse选择默认的附加参数

时间:2019-02-28 07:40:36

标签: python argparse

tl; dr 我可以通过prog.py a b -opt 1prog.py -opt 1 a b。我无法通过prog.py a -opt 1 b。我想。


给出ArgumentParser这样的设置

parser = argparse.ArgumentParser()
parser.add_argument(dest='arg', action='append', nargs='+')
parser.add_argument('-opt', dest='opt', action='store')

我希望将默认情况下的参数附加到arg

prog.py a -opt 1 b

我希望这返回参数元组(arg=[['a', 'b']], opt='1')。但是传递带有混合选项的参数将失败,并显示错误消息error: unrecognized arguments: b

但是,按此顺序传递参数会成功:

prog.py a b -opt 1
prog.py -opt 1 a b


我无法混合用于arg的参数的位置。

如何将ArgumentParser后备添加到一个参数参数?

1 个答案:

答案 0 :(得分:1)