1
我想编写一个名为sync
的Python脚本,它具有三种或四种操作模式,每种操作模式都接收不同数量的参数。例如,Python,argparse:具有不同参数个数的不同参数
sync set_version <build> <version_number>
sync get_version <build>
sync has_started <build_1> <build_2> ... <build_n>
我使用的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显示一个完整的帮助信息,与所有的subparsers参数?
这可能是相关的:http://stackoverflow.com/questions/14918804/how-to-show-help-for-all-subpasers-in-argparse – jsalonen
你可能想看看[''docopt']( http://docopt.org/)为这份工作 - 我听到有关图书馆的好消息。您以类似于您通常获得的帮助的方式给出说明,并且它会自动将命令行参数解析为简单的数据结构,并且它看起来像您希望的那样输出帮助。 –