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返回:
class=”lang-none prettyprint-override”>

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.

我喜欢这样的东西:
class=”lang-none prettyprint-override”>

--scan-time [SCAN_TIME]
                    Wait SCAN-TIME seconds between status checks.
                    (Default = 5)

在帮助格式化程序代码中窥视有限的选项。有没有一个聪明的方式来获得argparse以类似的方式打印“–scan-time”的默认值,或者我应该将帮助格式化程序分类?

回答:

使用argparse.ArgumentDefaultsHelpFormatter formatter

parser = argparse.ArgumentParser(
    # ... other options ...
    formatter_class=argparse.ArgumentDefaultsHelpFormatter)

引用文件:

可用的另一个格式化程序类ArgumentDefaultsHelpFormatter将添加有关每个参数的默认值的信息。

请注意,这仅适用于帮助文本定义的参数;对于参数没有help的值,则需要添加信息to
您的扫描时间选项的确切输出将变为:

  --scan-time [SCAN_TIME]
                        Wait SCAN-TIME seconds between status checks.
                        (default: 5)

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Argparse: Way to include default values in ‘–help’?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

97 − 95 =