Argparse:在“ --help”中包括默认值的方法吗?
假设我有以下argparse代码段:
diags.cmdln_parser.add_argument( '--scan-time',
action = 'store',
nargs = '?',
type = int,
default = 5,
help = "Wait SCAN-TIME seconds between status checks.")
当前,--help
返回:
usage: connection_check.py [-h]
[--version] [--scan-time [SCAN_TIME]]
Test the reliability/uptime of a connection.
optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit
--scan-time [SCAN_TIME]
Wait SCAN-TIME seconds between status checks.
我更喜欢这样的东西:
--scan-time [SCAN_TIME]
Wait SCAN-TIME seconds between status checks.
(Default = 5)
偷看帮助格式化程序代码,发现选择有限。是否有一种聪明的方法可以argparse
以--scan-
time
类似的方式打印默认值,还是我应该只是help
格式化程序的子类?
-
使用
argparse.ArgumentDefaultsHelpFormatter
格式化程序:parser = argparse.ArgumentParser( # ... other options ... formatter_class=argparse.ArgumentDefaultsHelpFormatter)
引用文档:
另一个可用的格式化程序类
ArgumentDefaultsHelpFormatter
,将添加有关每个参数的默认值的信息。注意, 这仅适用于已定义帮助文本的参数 ;如果没有
help
参数值,则没有帮助消息将有关默认值的信息添加 到中 。然后,您的扫描时间选项的确切输出将变为:
--scan-time [SCAN_TIME] Wait SCAN-TIME seconds between status checks. (default: 5)