小编典典

Argparse:在“--help”中包含默认值的方法?

all

假设我有以下 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


阅读 97

收藏
2022-03-24

共1个答案

小编典典

使用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)
2022-03-24