Аргументы командной строки (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 в вашем проекте и сделать его более удобным для пользователей.

Похожие вопросы на: "argparse "

JRE - платформа для запуска Java-приложений
Гиперссылки: полезные советы и инструкции
SVN: система контроля версий для эффективной работы с проектами
Условные операторы if в JavaScript
Сервис Mock - создание обманного контента для тестирования и разработки
Скачать KB2999226 для Windows 7 x64
Number JS - работа с числами в JavaScript
<h1>PHP count: подсчет элементов в массиве
Тайтл
Тессеракт OCR: распознавание текста на изображениях