Аргументы командной строки – это значения, которые передаются скрипту при его вызове из командной строки. Они позволяют пользователю настраивать поведение скрипта без изменения исходного кода.
Модуль sys
В Python для работы с аргументами командной строки используется модуль sys. В нем содержится переменная argv, которая представляет собой список строк. Первый элемент этого списка (argv[0]) всегда содержит имя самого скрипта. Остальные элементы – это аргументы, переданные скрипту.
Пример:
Python
import sys
print("Имя скрипта:", sys.argv[0])
print("Переданные аргументы:", sys.argv[1:])
Если запустить этот скрипт с командой python my_script.py arg1 arg2, то на выходе получим:
Имя скрипта: my_script.py
Переданные аргументы: ['arg1', 'arg2']
Модуль argparse
Для более удобной и гибкой работы с аргументами командной строки рекомендуется использовать модуль argparse. Он позволяет создавать парсеры аргументов, которые могут определять различные типы аргументов (позиционные, опциональные, с короткими и длинными именами) и проверять их корректность.
Пример:
Python
import argparse
parser = argparse.ArgumentParser(description='Пример использования argparse')
parser.add_argument('filename', help='Имя входного файла')
parser.add_argument('-o', '--output', help='Имя выходного файла', default='output.txt')
args = parser.parse_args()
print("Имя входного файла:", args.filename)
print("Имя выходного файла:", args.output)
В этом примере мы создали парсер, который ожидает один позиционный аргумент filename и один опциональный аргумент -o или --output. Если пользователь не укажет значение для output, то будет использовано значение по умолчанию.
Основные возможности argparse:
- Определение позиционных и опциональных аргументов: Позиционные аргументы обязательны для указания, опциональные – нет.
- Установка типов аргументов: Можно указывать, какого типа должно быть значение аргумента (строка, число и т.д.).
- Проверка корректности аргументов: Парсер может проверять, что переданные аргументы имеют правильный формат и значения.
- Создание групп аргументов: Можно группировать связанные аргументы.
- Определение значений по умолчанию: Для опциональных аргументов можно задавать значения по умолчанию.
- Выведение справки: Парсер может автоматически генерировать справку по использованию скрипта.
Когда использовать какой модуль?
- sys: Для простых случаев, когда нужно просто получить список переданных аргументов.
- argparse: Для создания сложных интерфейсов командной строки с множеством опций и аргументов.
Важные моменты
- Порядок аргументов: Порядок аргументов в командной строке может быть важен для некоторых скриптов.
- Проверка на наличие аргументов: Перед использованием аргумента необходимо проверить, был ли он передан.
- Обработка ошибок: Необходимо предусмотреть обработку ошибок, например, если пользователь передал неправильное количество аргументов или аргументы неправильного типа.
Дополнительные возможности:
- Подпарсеры: Для создания более сложных интерфейсов командной строки.
- Действия: Для выполнения определенных действий в зависимости от переданных аргументов.
Использование модуля argparse позволяет создавать более профессиональные и удобные в использовании скрипты Python.