我在我的程序中使用Python argparse模块来处理命令行子命令。我的代码基本上是这样的:
import argparse
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(title="subcommands", metavar="<command>")
subparser = subparsers.add_parser("this", help="do this")
subparser = subparsers.add_parser("that", help="do that")
parser.parse_args()
当运行"python test.py --help"时,我希望列出可用的子命令。目前我得到了以下输出:
usage: test.py [-h] <command> ...
optional arguments:
-h, --help show this help message and exit
subcommands:
<command>
this do this
that do that
我是否可以在子命令列表中以某种方式删除<command>
行,并仍然在使用行中保留它? 我尝试将help = argparse.SUPPRESS作为参数提供给add_subparsers,但这只会隐藏帮助输出中的所有子命令。
metavar
设置为None
(或者不设置)怎么样?-- 或者将metavar=''
设置为什么... - mgilsonmetavar=''
,我会得到一个空行。在这两种情况下,我都失去了用法行中的metavar。 - Jeppe Ledet-Pedersen