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/)爲這份工作 - 我聽到有關圖書館的好消息。您以類似於您通常獲得的幫助的方式給出說明,並且它會自動將命令行參數解析爲簡單的數據結構,並且它看起來像您希望的那樣輸出幫助。 –