【发布时间】:2012-08-22 11:47:48
【问题描述】:
假设我有以下 argparse sn-p:
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 格式化程序?
【问题讨论】:
-
您可能对docopt 感兴趣。我再也没有看过 argparse。
-
@PauloScardine - 内置于语言中是 argparse 的一大优势。
-
@PauloScardine:将非标准库拉入我当前的项目确实会很痛苦,但我确实喜欢 docopt 输出的外观。感谢您的提示!
-
@JS。您说“将非标准库拉入我当前的项目确实会很痛苦”真的吗? pypi 有很多非常有用的库。在我的上下文中,很容易引入非标准库。如果在您的上下文中很难,这很可悲。
-
@guettli:那个项目是针对商业嵌入式项目的。你是对的安装很容易。获得公司法务部门的批准是一场噩梦。