更改具有默认值

时间:2015-12-16 12:33:59

标签: python argparse

我有一个脚本,其参数有一个默认值。 我想做点什么:

$sample.py => Dont do anything
$sample.py -R => Use default value of -R
$sample.py -R <value> =>do something based on value passed

这在argparse中是否可行?

大家好。请注意,我的问题与解决方案中提到的问题不同。

基本上我希望只有当我在命令行上传递-R时才会执行与-R相对应的操作。 如果仅传递-R,则-R的值是默认值。

如果我在没有-R的情况下运行py文件,则不应该执行与-R相对应的操作。

1 个答案:

答案 0 :(得分:3)

parser.add_argument('-R',nargs='?', default='default',const='const')

应该产生

test.py => namspace(R='default')
test.py -R => namespace(R='const')
test.py -R value => namespace(R='value')

https://docs.python.org/3/library/argparse.html#nargs小节nargs='?'中记录了这一点。