我想编写一个名为的 Python 脚本sync
,它具有三种或四种操作模式,每种模式接收不同数量的参数。例如,
sync set_version <build> <version_number>
sync get_version <build>
sync has_started <build_1> <build_2> ... <build_n>
我已经尝试argparse
对每种操作模式使用 's subparsers:
import argparse
parser = argparse.ArgumentParser(description='Build synchronization mechanism')
subparsers = parser.add_subparsers()
parser_get_version = subparsers.add_parser('get_version')
parser_get_version.add_argument('build')
parser_update_version = subparsers.add_parser('update_version')
parser_update_version.add_argument('build')
parser_update_version.add_argument('version')
args = parser.parse_args()
print args
问题是帮助消息没有反映每种操作模式的参数结构。相反,它只是列出了操作模式:
usage: sync.py [-h] {get_version,update_version} ...
Build synchronization mechanism
positional arguments:
{get_version,update_version}
optional arguments:
-h, --help show this help message and exit
如何强制 argparse 显示带有所有子解析器参数的完整帮助消息?