Python argparse类型错误

Python argparse类型错误,python,typeerror,argparse,Python,Typeerror,Argparse,我在用python玩argparse。我的想法如下: group_gen.add_argument('--switch', nargs=2, metavar=('PARAM1', 'PARAM2')) 然后我删除了PARAM2,因此我有: group_gen.add_argument('--switch', nargs=2, metavar=('PARAM1', 'PARAM2')) 然后,每当argparse必须打印帮助时,我就会得到以下堆栈跟踪异常 Traceback (most rec

我在用python玩argparse。我的想法如下:

group_gen.add_argument('--switch', nargs=2, metavar=('PARAM1', 'PARAM2'))
然后我删除了PARAM2,因此我有:

group_gen.add_argument('--switch', nargs=2, metavar=('PARAM1', 'PARAM2'))
然后,每当argparse必须打印帮助时,我就会得到以下堆栈跟踪异常

Traceback (most recent call last):
  File "./script.py", line 20, in <module>
    args = parser.parse_args()
  File "/usr/lib/python2.7/argparse.py", line 1688, in parse_args
    args, argv = self.parse_known_args(args, namespace)
  File "/usr/lib/python2.7/argparse.py", line 1727, in parse_known_args
    self.error(str(err))
  File "/usr/lib/python2.7/argparse.py", line 2346, in error
    self.print_usage(_sys.stderr)
  File "/usr/lib/python2.7/argparse.py", line 2308, in print_usage
    self._print_message(self.format_usage(), file)
  File "/usr/lib/python2.7/argparse.py", line 2264, in format_usage
    return formatter.format_help()
  File "/usr/lib/python2.7/argparse.py", line 279, in format_help
    help = self._root_section.format_help()
  File "/usr/lib/python2.7/argparse.py", line 209, in format_help
    func(*args)
  File "/usr/lib/python2.7/argparse.py", line 317, in _format_usage
    action_usage = format(optionals + positionals, groups)
  File "/usr/lib/python2.7/argparse.py", line 449, in _format_actions_usage
    args_string = self._format_args(action, default)
  File "/usr/lib/python2.7/argparse.py", line 587, in _format_args
    result = ' '.join(formats) % get_metavar(action.nargs)
TypeError: not enough arguments for format string
回溯(最近一次呼叫最后一次):
文件“/script.py”,第20行,在
args=parser.parse_args()
parse_args中的文件“/usr/lib/python2.7/argparse.py”,第1688行
args,argv=self.parse\u known\u args(args,名称空间)
parse_known_args中的文件“/usr/lib/python2.7/argparse.py”,第1727行
自我错误(str(err))
文件“/usr/lib/python2.7/argparse.py”,第2346行出错
自我打印使用(_sys.stderr)
文件“/usr/lib/python2.7/argparse.py”,第2308行,打印使用
self.\u打印消息(self.format\u用法(),文件)
文件“/usr/lib/python2.7/argparse.py”,第2264行,格式为
返回格式化程序。格式化\u帮助()
文件“/usr/lib/python2.7/argparse.py”,第279行,格式为“帮助”
help=self.\u root\u section.format\u help()
文件“/usr/lib/python2.7/argparse.py”,第209行,格式为“帮助”
func(*args)
文件“/usr/lib/python2.7/argparse.py”,第317行,格式为
动作\用法=格式(可选+位置、组)
文件“/usr/lib/python2.7/argparse.py”,第449行,格式为
args\u string=self.\u format\u args(操作,默认)
文件“/usr/lib/python2.7/argparse.py”,第587行,格式为args
结果=“”.join(格式)%get\u metavar(action.nargs)
TypeError:格式字符串的参数不足
为什么我会犯这个错误


我很难弄清楚到底发生了什么,然后我意识到,使用命令格式字符串,我认为您的问题输入错误严重,但请尝试以下方法:

group_gen.add_argument('--switch', nargs=1, metavar=('PARAM1'))

这就是你想做的吗?

前两行是一样的?是的。我只是加入进来回答我自己的问题,因为谷歌搜索和这里的搜索并没有找到我想要的东西(但我最终找到了答案)。当我发布这个问题时,我发现了这个链接:如果它解决了问题,你介意继续接受它作为答案吗?此外,你应该填写你的个人资料。我保证你会留下来:)