【问题标题】:changing the behaviour of argument having default value改变具有默认值的参数的行为
【发布时间】:2016-03-22 14:23:12
【问题描述】:

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

$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 对应的操作。

【问题讨论】:

标签: python argparse


【解决方案1】:
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='?'

【讨论】:

  • 谢谢这解决了我的问题,我花了一段时间根据代码进行调整:)
猜你喜欢
  • 2019-09-12
  • 2016-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-09
  • 2017-03-09
  • 1970-01-01
相关资源
最近更新 更多