Python无需参数即可指定命令行标志

我如何添加一个可选的标志到我的命令行参数?

例如。 所以我可以写

python myprog.py 

要么

python myprog.py -w

我试过了

parser.add_argument('-w')

但我只是收到一条错误消息

Usage [-w W]
error: argument -w: expected one argument

我认为这意味着它需要-w选项的参数值。 接受国旗的方式是什么?

我在这个问题上发现http://docs.python.org/library/argparse.html而不透明。


就像你所拥有的那样,参数w在命令行中的-w后面会有一个值。 如果您只是想通过设置变量TrueFalse来切换开关,请查看http://docs.python.org/dev/library/argparse.html#action(特别是store_true和store_false)

parser.add_argument('-w', action='store_true')

编辑:正如Sven指出的那样,在这种情况下的默认值是多余的。


添加一个快速代码段以准备好执行:

来源:myparser.py

import argparse
parser = argparse.ArgumentParser(description="Flip a switch by setting a flag")
parser.add_argument('-w', action='store_true')

args = parser.parse_args()
print args.w

用法:

python myparser.py -w
>> True

在将参数添加到解析器时,action =“store_true”标志将参数的默认值设置为True。 所以,parser.add_argument(' - w',action =“store_true”)应该解决错误。

链接地址: http://www.djcxy.com/p/28551.html

上一篇: Python argparse command line flags without arguments

下一篇: Simple argparse example wanted: 1 argument, 3 results