Автоматизация на Python
Курс для тех, кто хочет писать небольшие, но надежные внутренние инструменты: от обработки файлов до запросов к API. Главная цель — делать скрипты, которые можно запускать повторно и поддерживать без страха.
Для кого курс
- Аналитики и операционные специалисты.
- Инженеры поддержки.
- Разработчики, которым нужны внутренние утилиты.
- Студенты после базового курса Python.
Требования
- Уверенное понимание переменных, функций и списков.
- Базовая работа с файлами.
- Желательно знать основы HTTP.
- Готовность писать небольшие тесты.
Неделя 1. Файлы и регулярные операции
Темы
pathlibи безопасная работа с путями.- Поиск файлов по маске.
- Чтение, запись и резервные копии.
- CSV, JSON и простые конфигурации.
- Логирование действий.
- Dry-run режим.
- Повторяемость операций.
Практика
- Переименовать набор файлов по правилу.
- Собрать список отчетов за месяц.
- Проверить структуру директорий.
- Добавить dry-run перед реальным изменением.
Домашнее задание
Написать файловый органайзер: он должен найти документы по расширениям, разложить их по папкам и сохранить лог всех действий.
Неделя 2. HTTP API и интеграции
Темы
- GET и POST запросы.
- Таймауты и обработка сетевых ошибок.
- JSON и схемы данных.
- Пагинация и лимиты API.
- Повторные попытки.
- Токены и переменные окружения.
- Сохранение промежуточных результатов.
Практика
- Получить данные из учебного API.
- Собрать отчет из нескольких endpoint-ов.
- Обработать ошибку 429.
- Сохранить результат в CSV и JSON.
Домашнее задание
Сделать интеграционный скрипт, который забирает список задач из API, фильтрует просроченные и формирует короткий отчет для команды.
Неделя 3. Запуск, тестирование и поддержка
Темы
- Аргументы командной строки.
- Конфигурация через файл и окружение.
- Idempotency и безопасный повторный запуск.
- Планировщики задач.
- Минимальные unit-тесты.
- Обработка частичных сбоев.
- Структура проекта для внутренних утилит.
Практика
- Добавить CLI-аргументы.
- Написать тест для функции фильтрации.
- Сделать понятный лог выполнения.
- Подготовить инструкцию для коллег.
Домашнее задание
Сделать скрипт, который можно запускать по расписанию: он должен читать конфигурацию, писать лог, корректно завершаться при ошибках и не дублировать результаты при повторном запуске.
Финальный проект
Варианты проекта:
- Бот-напоминатель для учебной группы.
- Сборщик отчетов из нескольких API.
- Проверка файловой структуры проекта.
- Генератор еженедельной сводки.
- Скрипт миграции простых CSV-данных.
Контрольные вопросы
- Почему dry-run полезен для файловых операций?
- Что делать, если API временно недоступен?
- Почему токены не стоит хранить прямо в коде?
- Что значит idempotent-скрипт?
- Какие сообщения должны попадать в лог?
Лабораторные работы
Лабораторная 1. Безопасный файловый органайзер
Студент пишет утилиту, которая раскладывает файлы по папкам, но сначала показывает план действий в dry-run режиме.
Проверяется:
- использование
pathlib; - отсутствие потери файлов;
- журнал действий;
- понятные CLI-аргументы;
- возможность повторного запуска.
Лабораторная 2. Сборщик API-отчетов
Нужно получить данные из нескольких endpoint-ов, объединить их и сформировать CSV-отчет. Ошибки сети должны обрабатываться аккуратно.
Проверяется:
- таймауты;
- обработка статусов ответа;
- пагинация;
- сохранение промежуточных данных;
- отсутствие токенов в коде.
Лабораторная 3. Скрипт по расписанию
Студент готовит утилиту для регулярного запуска: конфигурация отдельно, логирование отдельно, повторный запуск не создает дубликаты.
Проверяется:
- idempotency;
- конфигурационный файл;
- логирование результата;
- тестирование ключевых функций;
- инструкция эксплуатации.
Критерии оценки
- Скрипт можно запустить на другой машине по README.
- Ошибки не приводят к тихой потере данных.
- Повторный запуск безопасен.
- Настройки не зашиты в код.
- Логи помогают понять, что произошло.
Типичные ошибки
- Работать с относительными путями без понимания текущей директории.
- Игнорировать таймауты HTTP-запросов.
- Перезаписывать файлы без резервной копии.
- Печатать секреты в лог.
- Делать функцию, которая одновременно читает, обрабатывает и пишет данные.
Дополнительные темы
argparseдля CLI.loggingвместоprint.- Простые retry-стратегии.
- Тестирование функций без реального API.
- Форматирование отчетов для людей.
Результат
Студент сможет написать скрипт, который можно запускать регулярно, читать его логи, безопасно менять настройки без правки кода и объяснять коллегам, как пользоваться инструментом.