Я только что заметил поведение в 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
, или это просто неизбежная причуда?