【发布时间】:2020-10-12 13:53:59
【问题描述】:
我的 Python 程序使用 argparse 模块接受命令行参数,它按预期工作,但是,帮助文本有点误导,我想为使用我的程序的其他人修复它。
目前,我有一个位置参数,它是一个目录和一个可选参数-p,它使用add_argument 函数的nargs=+ 参数接受任意数量的包名称。 DIR 位置参数需要在可选参数列表之前指定,否则该目录将被错误地添加到包名称列表中,并且会出错说没有指定位置参数。帮助输出当前如下所示:
package_info.py --help
usage: package_info.py [-h] [-v] [--no-cache] [-g FILE] [-p [PKG [PKG ...]]]
DIR
Get information on packages in ros workspace.
positional arguments:
DIR The directory containing rospackages.
optional arguments:
-h, --help show this help message and exit
-v, --verbose Enables verbose mode
--no-cache Do not cache the dependency graph
-g FILE, --graph-file FILE
The graph file to load from or save to.
-p [PKG [PKG ...]], --packages [PKG [PKG ...]]
The packages to provide information on.
我希望它被格式化为在 -p 标志之前显示 DIR,以便用户更清楚地知道必须首先指定此参数,如下所示:
package_info.py --help
usage: package_info.py DIR [-h] [-v] [--no-cache] [-g FILE] [-p [PKG [PKG ...]]]
.
.
.
或
package_info.py --help
usage: package_info.py DIR
[-h] [-v] [--no-cache] [-g FILE] [-p [PKG [PKG ...]]]
.
.
.
是否有一种简单的方法来格式化帮助消息,或者我需要编写自定义帮助消息格式化程序吗?
【问题讨论】:
标签: python parameter-passing command-line-arguments argparse