如何允许-non_number作为python argparse中的参数

时间:2018-01-24 21:30:51

标签: python argparse

python test.py --arg -foo -bar
test.py: error: argument --arg: expected at least one argument

python test.py --arg -8
['-8']

如何允许-non_number与argparse一起使用?

有没有办法禁用短参数?

2 个答案:

答案 0 :(得分:3)

这样称呼:

python test.py --arg='-foo'

允许指定多个:

parser.add_argument('--arg', action='append')
# call like python test.py --arg=-foo --arg=-bar

答案 1 :(得分:1)

我认为你正在寻找argparser的nargs参数。

parser.add_argument('--arg', nargs='?')

目前,--arg正在将值'-8'解释为输入,而它认为'-f'(带参数'oo')是一个新参数。

或者,你可以使用action='store_true',它将用布尔值表示参数的存在与否。

parser.add_argument('--arg', action='store_true')

https://docs.python.org/3/library/argparse.html#nargs