Python中的argparse有点问题......
import argparse
parser = argparse.ArgumentParser()
parser.add_argument ("-o", "--optional", help="this is an optional argument")
args = parser.parse_args()
print ( args.optional )
调用test.py -h
将输出...
usage: test.py [-h] [-o OPTIONAL]
optional arguments:
-h, --help show this help message and exit
-o OPTIONAL, --optional OPTIONAL
this is an optional argument
有什么方法可以摆脱帮助菜单中的额外OPTIONAL
?我知道我可以使用parser.add_argument ("-o", "--optional", help="this is an optional argument", action=store_true)
执行此操作,但我不能这样做,因为我稍后需要调用args.optional
。
同样,这不仅仅是程序的功能与美学有关,因为test.py -o hello
会打印hello
。
答案 0 :(得分:0)
通常一个没有参数的选项有一个动作,它会抑制那个metavar:
parser.add_argument ("-o", "--optional", action='store_true')
否则,你可以修改这样的论点:
parser.add_argument ("-o", "--optional", metavar='', help="the help text")
答案 1 :(得分:0)
首先是解析这个参数或帮助中的显示?
<button id="btn">Press Me</button>
<div id="elem"></div>
具有默认的parser.add_argument ("-o", "--optional", help="this is an optional argument")
操作,因此需要一个参数。如用法中所示:
store_true
其中&#39;可选&#39;是usage: test.py [-h] [-o OPTIONAL]
或-o
后包含的字符串的替代品。 --optional
将具有该字符串的值。
args.optional
将此参数转换为布尔值,如果未给出则为False,如果提供action='store_true
则为True。它没有任何附加价值。
-o
是帮助中显示此类操作的正常方式。同样-o OPTIONAL, --optional OPTIONAL
是OPTIONAL
或-o
后面的字符串的地点标记。 --optional
参数可用于自定义该地点标记。它可以和&#34;&#34;
有些人不喜欢这种重复的模式,更喜欢像
这样的东西metavar
以前的问题已经讨论过了。它需要更改-o , --optional OPTIONAL
类(即子类)。
python argparse help message, disable metavar for short options?
另一件事是简化定义
HelpFormatter