🏋️ Задание: Анализ продаж по категориям и датам
Напишите программу, которая обрабатывает текстовый файл с данными о продажах. Используйте файл sales_data.txt.
Цель: закрепить навыки работы с файлами, аргументами командной строки, модулями
os и sys, а также группировки данных через defaultdict.
Требования к программе
-
Принимать аргументы командной строки:
python sales_report.py <input_file> <output_directory><input_file>— путь к входному файлу с продажами.<output_directory>— папка, куда будут сохранены отчёты.
-
Считать данные из текстового файла. Каждая строка содержит информацию в формате:
имя,дата,сумма,категория,город - Сгруппировать данные по годам и месяцам, создавая для каждого года и месяца отдельную папку в указанной директории.
-
Создать общий отчёт по каждому месяцу (
monthly_report.txt), в котором указана суммарная выручка по каждой категории и общая сумма:Automotive,109539 Books,133160 Clothing,102001 Electronics,79403 Groceries,104387 Home Appliances,99911 Sports,78782 Full,707183 -
Создать файлы для каждой категории товаров, в которых должны быть указаны все продажи по данной категории в формате:
дата,имя продавца,суммаВсе записи в файле должны быть отсортированы по дате.
Пример входных данных
Создайте файл sales_data.txt со следующим содержимым:
Olivia Suarez,2024-08-02,4565,Electronics,Dallas
Jennifer Jacobs,2023-08-19,4963,Automotive,London
Erin Johnson,2024-08-29,1796,Clothing,Miami
Cynthia Maddox,2025-02-01,538,Electronics,Chicago
Kendra Martinez,2025-02-01,3799,Electronics,New York
Rachel Miller,2025-02-02,1097,Electronics,Boston
Michael Brown,2024-12-15,8200,Automotive,Seattle
Sarah Davis,2025-01-10,1500,Clothing,Los Angeles
John Wilson,2025-01-12,2300,Electronics,Houston
Emma Taylor,2025-02-05,6500,Groceries,Phoenix
Пример запуска программы
python sales_report.py data/sales_data.txt reports
Пример созданной структуры
reports/
├── 2023/
│ ├── 08/
│ │ ├── monthly_report.txt
│ │ ├── Automotive.txt
├── 2024/
│ ├── 08/
│ │ ├── monthly_report.txt
│ │ ├── Clothing.txt
│ │ ├── Electronics.txt
│ ├── 12/
│ │ ├── monthly_report.txt
│ │ ├── Automotive.txt
├── 2025/
│ ├── 01/
│ │ ├── monthly_report.txt
│ │ ├── Clothing.txt
│ │ ├── Electronics.txt
│ ├── 02/
│ │ ├── monthly_report.txt
│ │ ├── Electronics.txt
│ │ ├── Groceries.txt
Критерии проверки
- Программа корректно обрабатывает аргументы командной строки и сообщает об ошибке, если их недостаточно.
- Создаются все необходимые папки и файлы.
monthly_report.txtсодержит суммы по всем категориям и строкуFullс общей суммой.- Файлы категорий содержат записи в формате
дата,имя,суммаи отсортированы по дате. - Код разделён на функции, переменные и функции названы понятно.