Аргументы командной строки (argparse)
Модуль argparse является расширенным инструментом командной строки в Python
Модуль argparse является расширенным инструментом командной строки в Python, который позволяет легко создавать гибкие и мощные интерфейсы для работы с пользовательским вводом. Он предоставляет удобные способы определения аргументов командной строки, их типов, проверки и установки значений по умолчанию.
Пример 1: Калькулятор командной строки
import argparse
# Создаем парсер аргументов
parser = argparse.ArgumentParser(description='Простой калькулятор командной строки')
# Добавляем аргументы
parser.add_argument('operand1', type=int, help='Первый операнд')
parser.add_argument('operand2', type=int, help='Второй операнд')
parser.add_argument('operator', choices=['+', '-', '*', '/'], help='Оператор (+, -, *, /)')
# Получаем аргументы
args = parser.parse_args()
# Выполняем вычисление
if args.operator == '+':
result = args.operand1 + args.operand2
elif args.operator == '-':
result = args.operand1 - args.operand2
elif args.operator == '*':
result = args.operand1 * args.operand2
else:
result = args.operand1 / args.operand2
# Выводим результат
print(f'Результат: {result}')
Пример 2: Поиск файла по имени
import argparse
import os
# Создаем парсер аргументов
parser = argparse.ArgumentParser(description='Поиск файла по имени')
# Добавляем аргументы
parser.add_argument('path', help='Путь к директории для поиска')
parser.add_argument('filename', help='Имя искомого файла')
# Получаем аргументы
args = parser.parse_args()
# Ищем файл по имени в указанной директории
found_files = []
for root, dirs, files in os.walk(args.path):
for file in files:
if file == args.filename:
found_files.append(os.path.join(root, file))
# Выводим найденные файлы
if found_files:
print('Найденные файлы:')
for file in found_files:
print(file)
else:
print('Файл не найден.')
Функции модуля argparse подробнее
1. Создание парсера аргументов
parser = argparse.ArgumentParser(description='Описание программы')
Здесь description - это описание программы, которое будет отображаться в справке.
2. Добавление аргументов
parser.add_argument('name', type=str, help='Описание аргумента')
Мы можем указать имя аргумента, его тип, описание и многое другое. Тип аргумента может быть str, int, float, bool и другие.
3. Получение аргументов
args = parser.parse_args()
Эта функция разбирает командную строку и возвращает объект Namespace, который содержит значения аргументов.
4. Использование аргументов
print(args.name)
Мы можем использовать значения аргументов, просто обратившись к соответствующим полям объекта Namespace.
5. Дополнительные опции
parser.add_argument('-o', '--option', help='Опция')
Мы можем добавлять флаги и другие опции, используя '-o' и '--option'.
6. Валидация аргументов
parser.add_argument('size', type=int, choices=[1, 2, 3], help='Размер (1, 2, 3)')
Мы можем ограничить выбор значений, используя список choices.
7. Автоматическая справка
parser.print_help()
С помощью этого метода мы можем вывести автоматически сгенерированную справку о программе и ее аргументах.
Модуль argparse является мощным инструментом для обработки аргументов командной строки в Python. Он позволяет удобно определять аргументы, указывать их типы, проводить валидацию и обрабатывать ошибки. При помощи argparse вы можете создавать профессиональные и легко читаемые интерфейсы командной строки для своих программ.
Надеюсь, эти примеры и объяснения помогут вам понять, как использовать argparse в вашем проекте и сделать его более удобным для пользователей.