Python: Argparse со списком списков - PullRequest
0 голосов
/ 10 декабря 2018

Минимально проверяемый пример:

import argparse

parser = argparse.ArgumentParser(description='...')
parser.add_argument('-f','--file', type=str, nargs='+', help='file list')

args = parser.parse_args()

print(args.sparse[:])

И идея в том, что я называю это как:

python my_script.py -f f1 f2 f3 -f some_other_file1 some_other_file2 ...

И результат будет:

[ [ f1 f2 f3 ] [ some_other_file1 some_other_file2 ] ]

Однако в этом случае все, что распечатано, это:

 [ some_other_file1 some_other_file2 ]

1 Ответ

0 голосов
/ 10 декабря 2018

action='append' может быть тем, что вы хотите:

import argparse

parser = argparse.ArgumentParser(description='...')
parser.add_argument('-f','--file', type=str, nargs='+', action='append', 
help='file list')

args = parser.parse_args()

print(args.file)

даст

$ python my_script.py -f 1 2 3 -f 4 5
[['1', '2', '3'], ['4', '5']]
...