Python argparse set поведение, когда аргументы не предоставлены

Я довольно плохо знаком с Python, и яЯ застрял на том, как структурировать мой простой скрипт при использовании аргументов командной строки.

Цель сценария - автоматизировать некоторые повседневные задачи в моей работе, связанные с сортировкой и обработкой изображений.

Я могу указать аргументы и заставить их вызывать соответствующие функции, но я также хочу установить действие по умолчанию, если аргументы не предоставлены.

Вот'С моей нынешней структурой.

parser = argparse.ArgumentParser()
parser.add_argument("-l", "--list", help="Create CSV of images", action="store_true")
parser.add_argument("-d", "--dimensions", help="Copy images with incorrect dimensions to new directory", action="store_true")
parser.add_argument("-i", "--interactive", help="Run script in interactive mode", action="store_true")
args = parser.parse_args()

if args.list:
    func1()
if args.interactive:
    func2()
if args.dimensions:
    func3()

Но когда я не привожу никаких аргументов, ничего не будет вызвано.

Namespace(dimensions=False, interactive=False, list=False)

То, что я хочу, это поведение по умолчанию, если аргументы не предоставлены

if args.list:
        func1()
    if args.interactive:
        func2()
    if args.dimensions:
        func3()
    if no args supplied:
        func1()
        func2()
        func3()

Кажется, это должно быть довольно легко достичь, но яЯ потерял логику того, как обнаружить все аргументы ложные, не просматривая аргументы и не проверяя, все ли ложны.

Обновить

Несколько аргументов действительны вместе, поэтому я неидти по маршруту элиф.

Обновление 2

Вот мой обновленный код с учетом ответа от @unutbu

это нене кажется идеальным, поскольку все заключено в оператор if, но в краткосрочной перспективе я не смогуне могу найти лучшего решения. Я'Я рад принять ответ от @unutbu, любые другие улучшения будут оценены.

lists = analyseImages()
    if lists:
        statusTable(lists)

        createCsvPartial = partial(createCsv, lists['file_list'])
        controlInputParital = partial(controlInput, lists)
        resizeImagePartial = partial(resizeImage, lists['resized'])
        optimiseImagePartial = partial(optimiseImage, lists['size_issues'])
        dimensionIssuesPartial = partial(dimensionIssues, lists['dim_issues'])

        parser = argparse.ArgumentParser()
        parser.add_argument(
        "-l", "--list", 
        dest='funcs', action="append_const", const=createCsvPartial,
        help="Create CSV of images",)
        parser.add_argument(
        "-c", "--convert", 
        dest='funcs', action="append_const", const=resizeImagePartial,
        help="Convert images from 1500 x 2000px to 900 x 1200px ",)
        parser.add_argument(
        "-o", "--optimise", 
        dest='funcs', action="append_const", const=optimiseImagePartial,    
        help="Optimise filesize for 900 x 1200px images",)
        parser.add_argument(
        "-d", "--dimensions", 
        dest='funcs', action="append_const", const=dimensionIssuesPartial,
        help="Copy images with incorrect dimensions to new directory",)
        parser.add_argument(
        "-i", "--interactive", 
        dest='funcs', action="append_const", const=controlInputParital,
        help="Run script in interactive mode",)
        args = parser.parse_args()

        if not args.funcs:
            args.funcs = [createCsvPartial, resizeImagePartial, optimiseImagePartial, dimensionIssuesPartial]

        for func in args.funcs:
            func()

    else:
        print 'No jpegs found'

Ответы на вопрос(3)

Ваш ответ на вопрос