В этом практикуме вы напишете полноценную консольную утилиту sales_report.py, которая читает файл продаж, группирует данные по годам и месяцам и создаёт отчёты по категориям.
Программа принимает пути через аргументы командной строки sys.argv, использует os.makedirs для создания вложенных папок и defaultdict для удобной группировки.
Главный результат — папка reports/ с подпапками YYYY/MM/, в каждой из которых лежат monthly_report.txt и файлы по категориям, отсортированные по дате.
Минимальный пример: запустить python sales_report.py data/sales_data.txt reports и получить структуру отчётов.
Топ-3 ошибки: забыть проверить количество аргументов sys.argv, не использовать exist_ok=True при создании папок, писать пути через "\\" вместо os.path.join.
О чём этот урок
Урок 53 — это большая практическая работа, объединяющая темы, пройденные ранее в курсе: работу с файлами, строками, словарями, модулями стандартной библиотеки и аргументами командной строки.
Вы создадите программу для анализа продаж. Она читает текстовый файл с записями формата имя,дата,сумма,категория,город, группирует записи по году, месяцу и категории, а затем генерирует структуру отчётов на диске.
Этот сценарий близок к реальным задачам обработки данных: ETL-скрипты, подготовка отчётности, агрегация CSV-файлов.
Цели
Читать аргументы командной строки через sys.argv и проверять их количество.
Читать текстовый файл построчно и разбирать строки по разделителю ,.
Преобразовывать строковые данные в числа и даты.
Группировать данные с помощью defaultdict из модуля collections.
Создавать вложенные директории через os.makedirs(exist_ok=True).
Сортировать записи по дате с помощью sorted и lambda.
Формировать текстовые отчёты и записывать их в файлы с кодировкой utf-8.