我有一个可选参数,支持一个参数列表本身.
我的意思是,它应该支持:
但不是:
有没有办法在argparse中强制执行此操作?现在我使用nargs ="*",然后检查列表长度.
编辑:根据要求,我需要的是能够定义一系列可接受的参数.我的意思是,说(在例子中)2或3个args是正确的,但不是1或4或任何不在2..3范围内的东西
我有以下python程序:
#!/usr/bin/env python
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('arg', choices=['foo', 'bar', 'baz'], default='foo', nargs='*')
args = parser.parse_args()
print(args)
Run Code Online (Sandbox Code Playgroud)
如果我像这样调用程序:
./prog.py
Run Code Online (Sandbox Code Playgroud)
输出是
Namespace(arg='foo')
Run Code Online (Sandbox Code Playgroud)
但是如果我foo以参数的形式调用程序:
./prog.py foo
Run Code Online (Sandbox Code Playgroud)
输出是
Namespace(arg=['foo'])
Run Code Online (Sandbox Code Playgroud)
题
如何才能获得arg默认值list?
我试过了
我尝试过设置,default=['foo']但结果是:
prog.py: error: argument arg: invalid choice: ['foo'] (choose from 'foo', 'bar', 'baz')
Run Code Online (Sandbox Code Playgroud)