Изучаем модуль argparse 2

В предыдущем уроке мы разобрали сам модуль, цель применения, примеры, а также подробно разобрали весь модуль. В данной статье мы разберем позиционные аргументы, необязательные аргументы, а также для чего еще можно использовать модуль argparse.
Позиционные аргументы
Блок parse.add_argument('indir', type=str, help='Input dir for videos') из скрипта videos.py нужна нам для создания позиционного аргумента. При вызове скрипта, нужно понять тот факт, что аргументы должны идти по порядку указания. То есть первый аргумент это первый позиционный аргумент, второй агрумент является вторым позиционным аргументом, и т.д.
Что будет если запустить скрипт без аргументов просто выполнив в терминале команду "python videos.py"? Произойдет ошибка следующего типа:

Это простой пример того, что позиционные аргументы нужно указывать при его запуске, для решения данных проблем.
Необязательные аргументы
Что произойдет, если ввести в терминал команду "python videos.py --help"? В нашем случае будет выведена справочная информация о нем. Данная информация будет информацией о позиционных аргументах, которые мы указывали для описания соответствующих переменных:

Скрипт выдал нам все, что он ждет от обычного пользователя. help - это пример необязательного аргумента. help или -h это единственный стандартный необязательный аргумент, с которым мы можем взаимодействовать при работе с argparse, но вы также можете создать свои необязательные аргументы.
Они создаются точно также как и позиционные, разница лишь в том, что имена начинаются с последовательности символов "--", для кратких форм "-". Пример необязательных аргументов:

Небольшой пример с созданием и использование необязательных аргументов. Заметьте, что мы указали тип необязательного аргумента как int, но мы можем использовать и другие типы.

Аргумент, описанный как --my_optional, доступен в программе в виде свойства объекта my_namespace с именем my_optional.
Необязательным аргументам можно указывать значения, которые будут иметь по умолчанию. Например если мы вызовем скрипт, аргументу my_example без значений будет записано число 2, вывод которого будет показан в консоле. Мы можем воспользоваться такой конструкцией для указания значения при запуске скрипта:

Для чего ещё можно использовать argparse?
Модуль argparse можно использовать во время написания приложений, которые нужно упаковывать в контейнер Docker. К примеру можно при запуске приложения, упакованного в контейнер, передавать ему аргументы командной строки при помощи Dockerfile с помощью инструкции RUN. При запуска скрипта и выполнения контейнера, можно пользоваться инструкцией CMD или ENTRYPOINT.
Итоги

В данной статье мы полностью разобрали модуль argparse. Поняли как работать с аргументами, какими они бывают, как различать, с какими целями используется этот модуль и разнообразное количество примеров. Надеемся вы поняли суть данного модуля и успешно применяете его на практике.