我正在使用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
为什么我会得到这个错误?
我在弄清楚到底是怎么回事时遇到了麻烦,然后我突然明白了,命令格式字符串
发布于 2013-01-29 06:38:21
我认为你的问题打错了,但试试这个:
group_gen.add_argument('--switch', nargs=1, metavar=('PARAM1'))
这就是你想要做的吗?
https://stackoverflow.com/questions/14572528
复制相似问题