我刚刚注意到 argparse 中的一个行为让我感到困惑(我猜我以前从未将它用于愚蠢的文件列表):
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('multi', action='append', nargs='+')
print(parser.parse_args())
这给了我输出:
~$ ./testargs.py foo bar baz
Namespace(multi=[['foo', 'bar', 'baz']])
~$
我希望multi
是['foo', 'bar', 'baz']
,而不是列表中的列表。照原样,我必须在处理之前抓住args.multi[0]
,这没什么大不了的,但感觉就像一个丑陋的疣,我想了解它为什么在那里。
我是在做一些愚蠢的事情add_argument
,还是这只是一个不可避免的怪癖?