为何Python中argparse的add_argument参数会自动大写?
为什么argparse中--foo参数的帮助信息显示为FOO?
问题场景
编写了如下argparse代码:
import argparse parser = argparse.ArgumentParser() parser.add_argument('--foo', help='foo help') args = parser.parse_args()
运行后终端输出的使用信息里,--foo对应的参数被显示为FOO:
usage: myprogram.py [-h] [--foo FOO] options: -h, --help show this help message and exit --foo FOO foo help
原因解析
这是argparse模块的默认行为:对于带--前缀的可选参数,若未通过metavar参数指定自定义占位符,模块会自动将参数名转换为全大写,作为帮助信息里的参数占位符。
如果需要自定义占位符,只需在add_argument中指定metavar参数即可,示例:
import argparse parser = argparse.ArgumentParser() parser.add_argument('--foo', help='foo help', metavar='bar') args = parser.parse_args()
此时帮助信息会显示为--foo bar,而非默认的大写形式。
内容的提问来源于stack exchange,提问作者podlook
相关产品推荐
相关产品推荐

