【发布时间】:2017-10-28 04:46:07
【问题描述】:
我想使用 python 和 argparse 库制作一个基于命令行的应用程序。但是我对这个库有一些挑战,这是命令的样子(用法):
prog (foo|bar) [-v] (-h "key:value")* [-d inline-data] [-f file] URL
这是 prog help 输出:
> prog help
prog is a simple application
Usage:
prog command [arguments]
The commands are:
foo executes FOO
bar executes BAR
help prints this screen.
Use "prog help [command]" for more information about a command.
我的挑战在于这部分。当我们执行以下命令时,我想给出单独的帮助说明:
prog help foo
prog help bar
import argparse
parser = argparse.ArgumentParser(prog='prog.py',description='some help', add_help=False)
#I turned off the default help, and defined -h separately.
parser.add_argument('-h', '--header', metavar='', help='headerHelpString')
subparsers = parser.add_subparsers(help='help sub-command')
subparserHelp = subparsers.add_parser('help', help='some help')
subparserFooBar = subparserHelp.add_argument('method', choices=['foo', 'bar'])
group = parser.add_mutually_exclusive_group()
group.add_argument('-q', '--quiet', action='store_true', help='print quiet')
group.add_argument('-v', '--verbose', action='store_true', help='print verbose')
args = parser.parse_args()
【问题讨论】: