问题描述
如何向命令行参数添加可选标志?
How do I add an optional flag to my command line args?
例如.所以我可以写
python myprog.py
或
python myprog.py -w
我试过了
parser.add_argument('-w')
但我只是收到一条错误消息,内容为
But I just get an error message saying
Usage [-w W]
error: argument -w: expected one argument
我认为这意味着它需要 -w 选项的参数值.只接受旗帜的方式是什么?
which I take it means that it wants an argument value for the -w option. What's the way of just accepting a flag?
我发现 http://docs.python.org/library/argparse.html 相当不透明关于这个问题.
I'm finding http://docs.python.org/library/argparse.html rather opaque on this question.
推荐答案
正如你所拥有的,参数 w
期望在命令行上的 -w
之后有一个值.如果您只是想通过设置变量 True
或 False
来翻转开关,请查看 这里(特别是 store_true 和 store_false)
As you have it, the argument w
is expecting a value after -w
on the command line. If you are just looking to flip a switch by setting a variable True
or False
, have a look here (specifically store_true and store_false)
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-w', action='store_true')
其中 action='store_true'
意味着 default=False
.
相反,您可以有 action='store_false'
,这意味着 default=True
.
Conversely, you could haveaction='store_false'
, which implies default=True
.
这篇关于没有参数的Python argparse命令行标志的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!