相关疑难解决方法(0)

Python argparse:组合'choices','nargs'和'default'时输入不一致

我有以下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)

python argparse

10
推荐指数
1
解决办法
362
查看次数

标签 统计

argparse ×1

python ×1