如何解决有没有办法访问metavar的默认名称所有大写字母中的参数名称?
我在Python 3.7中使用argparse
,并且我想在Metavar
文本中包含默认的help
名称;例如,如果参数名称为"source"
,则默认的Metavar
变为"SOURCE"
,并且我希望使用"%(Metavar)s"
而不是对其进行硬编码来将此文本显示在帮助中
我不能为此使用"%(dest)s"
,因为它呈现小写并且不能转换为大写(或者至少我没有找到一种方法)。
在argparse
文档之后,我这样写:
import argparse
p = argparse.ArgumentParser()
p.add_argument("-s","--source",type = open,help = "Blah blah %(Metavar)s blah.")
p.parse_args()
当我使用--help
选项调用程序时,我期望"%(Metavar)s"
会变成"SOURCE"
,但是会变成"None"
:
usage: test_argparse.py [-h] [-s SOURCE]
optional arguments:
-h,--help show this help message and exit
-s SOURCE,--source SOURCE
Blah blah None blah.
如果我将Metavar
设置为某个值(例如"SOURCE"
),则它可以正常工作,但这意味着我必须为每个参数手动定义该值。
有没有一种方法可以使用Metavar
的默认值(即所有大写字母中的参数名称)而无需设置Metavar = "SOURCE"
或将其硬编码为help
文本?我已经研究了文档,但是没有找到任何关于它的信息。
解决方法
您必须通过metavar
明确定义metavar="foo"
import argparse
p = argparse.ArgumentParser()
p.add_argument("-s",metavar="--source",type = open,help = "Blah blah %(metavar)s blah.")
p.parse_args()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。