Академия Онлайн

Автоматизация на 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.
  • Форматирование отчетов для людей.

Результат

Студент сможет написать скрипт, который можно запускать регулярно, читать его логи, безопасно менять настройки без правки кода и объяснять коллегам, как пользоваться инструментом.