ПРОЄКТ: АВТОМАТИЗАЦІЯ ЩОДЕННИХ ЗВІТІВ
Курс: Python для аналітиків з нуля
1. ПОСТАНОВКА ЗАДАЧІ
Щоденний звіт за 5 секунд замість 30 хвилин ручної роботи.
Вхід: щоденний CSV з подіями (час, тип, статус, відповідальний)Вихід: Word документ з підсумком, таблицями, графіками
Інтеграція: pandas, matplotlib, python-docx, шаблони
2. СТРУКТУРА ПРОЄКТУ
Файли:
- template.docx — шаблон звіту з плейсхолдерами
- daily_events.csv — дані за день
- generate_report.py — скрипт генерації
graphs/ — папка для графіків (автостворення)Етапи:
- 1. Завантажити дані
- 2. Розрахувати статистику
- 3. Згенерувати графіки
- 4. Заповнити шаблон
- 5. Зберегти звіт
3. КОД: ЧАСТИНА 1
Завантаження та аналіз:
import pandas as pd4. КОД: ЧАСТИНА 2
Генерація графіків:
# === КРОК 3: ГРАФІКИ ===5. КОД: ЧАСТИНА 3
Заповнення шаблону:
# === КРОК 4: ЗАПОВНИТИ ШАБЛОН ===6. ШАБЛОН TEMPLATE.DOCX
Створи template.docx з таким текстом:
ЩОДЕННИЙ ЗВІТ
Дата: {DATE}ПІДСУМОК
Всього подій: {TOTAL_EVENTS}
Виконано: {COMPLETED}
В очікуванні: {PENDING}
Не виконано: {FAILED}Процент виконання: {COMPLETION_RATE}%
АКТИВНІСТЬ ПО ГОДИНАХ
{GRAPH_HOURLY}РОЗПОДІЛ ЗА СТАТУСАМИ
{GRAPH_STATUS}ТОП ТИПІВ ПОДІЙ
{GRAPH_TYPES}7. АВТОМАТИЗАЦІЯ ЧЕРЕЗ CRON
Linux (запуск о 23:00 щодня):
0 23 * * * cd /path/to/project && python3 generate_report.pyWindows (Task Scheduler):
Створити задачу: щодня о 23:00 запускати python generate_report.py
8. РОЗШИРЕННЯ
Ідея 1: надсилання email
import smtplibІдея 2: архівування
Зберігати звіти по місяцях: reports/2024-01/, reports/2024-02/
9. РЕФЛЕКСІЯ
Я автоматизував рутинну задачу
Я працював з шаблонами документів
Я генерував графіки програмно
Я інтегрував matplotlib + python-docxЯ налаштував автозапуск
10. ЩО ДАЛІ
Проєкт 4.3: Аналіз радіоперехоплень (повний цикл радіорозвідки)
Головна думка: Шаблон + дані + скрипт = автоматизація. 30 хвилин ручної роботи → 5 секунд виконання скрипту.