С помощью следующего кода я пытаюсь проанализировать несколько аргументов, которые основаны на вводе пользователя. Одним из таких аргументов является получение нескольких файлов и их чтение с использованием argparse.Filetype ('r'). Это прекрасно работает при получении одного файла в качестве входных данных, но я пытаюсь сделать так, чтобы сценарии могли получить один или несколько файлов, следовательно, nargs = '+'.
parser = argparse.ArgumentParser(description='nanana')
parser.add_argument('files', type=argparse.FileType('r'), nargs='+',
help='The files which should be converted.')
parser.add_argument("--csvoutput", type=util.str2bool, nargs='?',
const=True, default=False, dest='boolean_switch',
help="Write file to CSV File.")
parser.add_argument('-v', '--verbose', dest='verbose', action='store_true',
help='Enable verbose output.')
root = tk.Tk()
root.withdraw()
root.call('wm', 'attributes', '.', '-topmost', True)
file_path = filedialog.askopenfilenames()
var = root.tk.splitlist(file_path)
file_list = []
for f in var:
file_list.append(f)
arguments = parser.parse_args(['--csvoutput', '-v', file_list])
create_file(arguments.files, arguments.boolean_switch)
При запуске этого сценария я получить следующее сообщение об ошибке:
Convert.py: ошибка: файлы аргументов: недопустимое значение FileType ('r'):
Это, вероятно, потому что argparse.FileType ( 'r') не может обработать список файлов, но я не уверен, что использовать в противном случае