С определением типа:
parser.add_argument('-o','--output', dest='output_file_name', nargs='+')
вы можете указать в командной строке:
$ ./script.py -o file1 file2
и получите args.output_file_name
, равный ['file1','file2']
. «+» Означает один или несколько аргументов (другие значения nargs
задокументированы).
Но
$ ./script.py -o file1 file2 an_input_file
где 'an_input_file' идет к позиционному аргументу, труднее достичь. «*» жадный, забирает все, ничего не оставляет для позиционного. Лучше определить еще один дополнительный
parser.add_argument('-i','--input')
$ ./script.py -o file1 file2 -i an_input_file
Если '-o' определено как действие 'добавления', вы можете использовать:
$ ./script.py -o file1 -o file2 -i an_input_file
Как правило, вы получаете лучший контроль, используя дополнительные функции. Позиционеры, потому что они «анализируют» по позиции, а не по значению, сложнее использовать в причудливых комбинациях.
Параметр metavar
позволяет изменить отображение help
.