我正在尝试使用该argparse
库为python脚本编写用法/帮助。
这是我的示例代码:
import argparse
parser = argparse.ArgumentParser(
description='My description')
parser.add_argument(
"-r", "--remote",
help="help message")
parser.print_help()
输出:
usage: [-h] [-r REMOTE]
My description
optional arguments:
-h, --help show this help message and exit
-r REMOTE, --remote REMOTE
help message
我不知道为什么在上述输出中REMOTE
的-r
and--remote
开关之后进行打印。
谁能告诉我我在这里做错了什么或者应该怎么做才能摆脱它?
你在看metavar ; 它由选项字符串自动生成以形成占位符。它告诉用户在那里需要填写一个值。
您可以使用metavar
关键字参数设置显式的metavar值:
当
ArgumentParser
生成帮助消息时,它需要某种方式来引用每个期望的参数。默认情况下,ArgumentParser
对象使用dest值作为每个对象的“名称”。默认情况下,对于位置参数操作,直接使用dest值,对于可选参数操作,dest值使用大写。
您之所以会看到它,是因为您的论点具有价值。如果您希望它是一个切换,请使用action='store_true'
; 在这种情况下,False
除非用户指定开关,否则该选项默认为。
后者的演示:
>>> import argparse
>>> parser = argparse.ArgumentParser(
... description='My description')
>>> parser.add_argument("-r", "--remote", action='store_true', help="help message")
_StoreTrueAction(option_strings=['-r', '--remote'], dest='remote', nargs=0, const=True, default=False, type=None, choices=None, help='help message', metavar=None)
>>> parser.print_help()
usage: [-h] [-r]
My description
optional arguments:
-h, --help show this help message and exit
-r, --remote help message
>>> opts = parser.parse_args([])
>>> opts.remote
False
>>> opts = parser.parse_args(['-r'])
>>> opts.remote
True
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句