我有:
from argparse import ArgumentParser
parser = ArgumentParser(description='Test')
parser.add_argument("command",
help="the command to be executed",
choices=["dump", "delete", "update", "set"],
default="set")
parser.parse_args()
但是当我跑步时:python test.py
我得到了:
usage: test.py [-h] {dump,delete,update,set}
test.py: error: too few arguments
也许我今天只是视而不见;但我无法确定我的输入应该是什么错误。或者argparse根本不可能这样做?
答案 0 :(得分:4)
要使default
个关键字参数起作用,您必须添加nargs='*'
,如下所示:
parser.add_argument("command",
help="the command to be executed",
choices=["dump", "delete", "update", "set"],
nargs='?',
default="set"
)
有关详细信息,请参阅https://docs.python.org/2/library/argparse.html#default:)
按OP编辑:nargs='*'
允许输入多个命令。因此我改为nargs='?'
,因为我正在寻找正好一个命令。