2015-01-04 2 views
0

Должен ли я использовать argparse в python для управления файлами? Все примеры в Интернете касаются простой манипуляции с аргументами командной строки. Более конкретно, у меня есть 3 задачи по управлению файлами, назовем их a, b и c. Например, запускargparse для манипулирования файлами

python -i input.csv -a -b 

должен выполнять задачи a и b на input.csv.

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

ответ

2

Да, вы можете отлично использовать argparse с именами файлов. Например:

parser = argparse.ArgumentParser() 
parser.add_argument("-i", type=str, help="...") 
parser.add_argument('-a', dest='task_a', action='store_true', help="...") 
parser.add_argument('-b', dest='task_b', action='store_true', help="...") 

parser.set_defaults(task_a=False) 
parser.set_defaults(task_b=False) 

args = parser.parse_args() 

file_name = args.i 
# or file_name = os.path.expanduser(args.i) 

if os.path.isfile(file_name): 
    file = open(file_name, 'rb') 
    # and now do whatever you need to do with the file 
    if args.task_a: 
     ... 
    if args.task_b: 
     ... 

    file.close() 
+0

Вам не нужны строки 'set_defaults'. «store_true» делает это напрямую. – hpaulj