我有这个示例代码:
from argparse import ArgumentParser
parser = ArgumentParser()
parser.add_argument('config')
group = parser.add_mutually_exclusive_group()
group.add_argument('--verbose')
group.add_argument('--quiet')
commands = parser.add_subparsers()
command = commands.add_parser('upload')
command.add_argument('path')
command.add_argument('--url')
command = commands.add_parser('check')
group = command.add_mutually_exclusive_group()
group.add_argument('--md5')
group.add_argument('--path')
if __name__=='__main__':
parser.parse_args()
使用 --help 运行它会给出:
usage: argparse_example.py [-h] [--verbose VERBOSE | --quiet QUIET]
config {upload,check} ...
positional arguments:
config
{upload,check}
optional arguments:
-h, --help show this help message and exit
--verbose VERBOSE
--quiet QUIET
我希望它显示的是:
usage: argparse_example.py [-h] [--verbose VERBOSE | --quiet QUIET]
config {upload,check} ...
positional arguments:
config
{upload,check}
optional arguments:
-h, --help show this help message and exit
--verbose VERBOSE
--quiet QUIET
sub-commands:
upload [-h] [--url URL] path
positional arguments:
path
optional arguments:
-h, --help show this help message and exit
--url URL
check [-h] [--md5 MD5 | --path PATH]
optional arguments:
-h, --help show this help message and exit
--md5 MD5
--path PATH
我确实尝试过实现 HelpFormatter 子类,但很快就迷路了。
有没有人有这样一个子类的可行实现?