我有一个脚本,其参数有一个默认值。 我想做点什么:
$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相对应的操作。
答案 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='?'
中记录了这一点。