argparse для работы с файлами

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

python -i input.csv -a -b

следует запускать задачи a и b на input.csv.

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


person user1943079    schedule 04.01.2015    source источник


Ответы (1)


Да, вы можете прекрасно использовать 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()
person jpl    schedule 04.01.2015
comment
Вам не нужны строки set_defaults. store_true делает это напрямую. - person hpaulj; 05.01.2015