我有一个这样的程序:
program.py add|remove|show
这里的问题是,取决于add / remove / show命令,它需要可变数量的参数,就像这样:
program.py add "a string" "another string"
program.py remove "a string"
program.py show
因此,'add'命令将采用2个字符串参数,而'remove'命令将采用1个参数,而'show'命令不会采用任何参数。 我知道如何使用模块argparse创建一个基本的参数解析器,但我没有太多的经验,所以我从这开始:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("command", choices=["add", "remove", "show"])
但我不知道如何继续以及如何根据命令实现此功能。提前致谢。
答案 0 :(得分:2)
你正在寻找argparse的subparsers ......
parser = argparse.ArgumentParser(prog='PROG')
subparsers = parser.add_subparsers(help='sub-command help')
# create the parser for the "add" command
parser_add = subparsers.add_parser('add', help='add help')
# [example] add an argument to a specific subparser
parser_add.add_argument('bar', type=int, help='bar help')
# create the parser for the "remove" command
parser_remove = subparsers.add_parser('remove', help='remove help')
# create the parser for the "show" command
parser_show = subparsers.add_parser('show', help='show help')
此示例代码被盗,只需对语言reference documentation进行很少的修改。