我想在使用库的add_subparsers
方法argparse
而不使用关键字参数的情况下获得以下功能nargs
:
$ python my_program.py scream Hello
You just screamed Hello!!
$ python my_program.py count ten
You just counted to ten.
我知道我可以这样做:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("cmd", help="Execute a command", action="store",
nargs='*')
args = parser.parse_args()
args_list = args.cmd
if len(args.cmd) == 2:
if args.cmd[0] == "scream":
if args.cmd[1] == "Hello":
print "You just screamed Hello!!"
else:
print "You just screamed some other command!!"
elif args.cmd[0] == "count":
if args.cmd[1]:
print "You just counted to %s." % args.cmd[1]
else:
pass
else:
print "These two commands are undefined"
else:
print "These commands are undefined"
但是当我这样做时,$ python my_program.py
我会丢失显示参数列表等的默认 arparse 文本。
我知道库中有一种add_subparsers
方法argparse
可以处理多个位置参数,但我还没有找到让它正常工作的方法。谁能告诉我怎么做?