2015-02-28 3 views
0

Как структурировать блок обработки командной строки таким образом, чтобы разрешить именовать несколько файлов в любом порядке И открыть эти типы файлов по их суффиксам?Обработка аргументов командной строки

В этой программе Python мне нужно передать как двоичный файл, так и файл .vhdr в мою командную строку. Файл .vhdr будет считан в память, а (большой) двоичный файл будет обрабатываться постепенно. Я хотел бы построить это так, чтобы пользователь мог передавать имена файлов в любом порядке. Мне кажется, что разумным способом справиться с этим было бы перебрать каждый элемент в argv, проверить, имеет ли он суффикс «.vhdr», и использовать тот элемент, который он должен сохранить для моего файлового объекта.

Есть ли в библиотеке какие-либо библиотеки, или я должен писать это с нуля? Я не смог найти что-то подобное в библиотеке argparse, но я новичок, поэтому я легко мог бы взглянуть прямо на него и не понял.

ответ

3

Использовать хорошо известный argparse библиотеки. Простой пример

import argparse 
parser = argparse.ArgumentParser() 
parser.add_argument("--vhdr", dest="vhdr_file") 
parser.add_argument("--bin", dest="bin_file") 
args = parser.parse_args() 
print(args) 

выход:

$ python demo.py --vhdr 1 --bin 2 
Namespace(bin_file='2', vhdr_file='1') 
$ python demo.py --bin 1 --vhdr 2 
Namespace(bin_file='1', vhdr_file='2') 
Смежные вопросы