Раскладка файловРазработка и доработка

Скрипт на Python, который разложит захламлённую папку по подпапкам по типу, дате или имени, по вашим правилам

Обычно готово за 15 минутДоработки включеныКонтроль качества
Пакеты
Защита оплатыПодробнее
  • Доработки в рамках пакета бесплатны.
  • Если вы не ответите в течение 3 дней после сдачи, работа будет принята автоматически.

При оплате деньги резервируются и переходят сервису, только когда вы примете работу.

Скрипт на Python, который разложит захламлённую папку по подпапкам по типу, дате или имени, по вашим правилам

Пример результата

Пример по пакету «Стандарт»

Сводный отчёт в Excel из ежемесячных продаж 9 магазинов

Как его запускают

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Папка: sales/2026-10, найдено файлов: 9
2026-11-02 09:14:03 INFO  shop-01.csv: 1284 строки
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 строк
2026-11-02 09:14:04 WARN  shop-07.csv: пропущены 3 строки без цены (строки 88, 412, 913)
2026-11-02 09:14:05 INFO  Готово: 10 412 строк -> report-2026-10.xlsx (листы «Продажи» и «Итоги»)

Настройки, а не код

Названия столбцов каждого магазина лежат в settings.ini. Новый магазин или переименованный столбец — это одна строка там:

[columns]
date = Дата, Дата продажи, День
product = Товар, Наименование, Название
quantity = Кол-во, Количество, Шт
price = Цена, Цена за шт

Фрагмент кода

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Читает файл одного магазина и даёт столбцам названия из отчёта."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}: нет столбца «{name}» (искали: {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Файлы: ZIP-архив с merge_sales.py (310 строк), settings.ini, requirements.txt и README: как установить Python, как запустить скрипт и что значит каждое сообщение в журнале. Клиент запускает скрипт на своём компьютере.

Клиент: небольшая сеть из 9 магазинов канцтоваров. Каждый магазин присылает продажи за месяц в CSV или Excel, и названия столбцов у всех немного разные. Задача: скрипт, который читает все файлы из папки, приводит столбцы к одному виду и сохраняет один отчёт в Excel: все продажи и отдельный лист с итогами по магазинам.

Клиент и все данные вымышлены.

Об услуге

Папка «Загрузки», общая папка сканов или карта фотоаппарата быстро превращаются в тысячи вперемешку лежащих файлов. Этот скрипт на Python разложит их по вашим правилам: по типу (PDF в «Документы», фото в «Картинки»), по дате в папки года и месяца или по словам в имени, например имени клиента или номеру счёта. Он может копировать файлы или переносить их, сам создаёт нужные папки, а если файл с таким именем уже есть, добавляет номер, а не заменяет его. Пришлите нужную структуру папок и правила. Запускаете скрипт вы сами на своём компьютере, поэтому сначала попробуйте на копии. Ничего не удаляется: файлы только меняют место и только внутри названных вами папок.

Что входит

  • Что вы получитеАрхив ZIP со скриптом на Python, README с пошаговой инструкцией и, начиная со «Стандарта», файл настроек с вашими папками и правилами; код также виден на странице заказа.
  • По типу, дате или имениПравила, которые вы задали, в нужном порядке
  • Копировать или переноситьРешаете вы; оригиналы могут остаться на месте
  • Бережно с именамиФайл с занятым именем получает номер, ничего не заменяется
  • Пробный запускНачиная со «Стандарта», запуск, который только показывает, что куда попадёт
  • Понятный кодС комментариями, правило легко добавить потом

Порядок работы

  1. 1
    ПравилаВы описываете нужные папки и как в них попадают файлы
  2. 2
    КодМы пишем скрипт и инструкцию по запуску
  3. 3
    ПроверкаВы запускаете его на копии папки
  4. 4
    ПравкиВы просите правки в рамках пакета и присылаете текст ошибки, если она есть

Что нужно от вас

Какую папку разбирать и примерно сколько в ней файлов, какие папки должны получиться и правило для каждой: типы файлов, дата (из файла или из имени) или слова в имени. Копировать файлы или переносить, что делать с файлами, которым не подходит ни одно правило, и какая у вас система: Windows, macOS или Linux. Очень поможет скриншот папки или список из 10-20 имён файлов.

В брифе мы спросим:

  • Какую папку нужно разобрать?
  • Какие папки создать и что куда класть?
  • Копировать или переносить?
  • Где он будет работать?

Сравнение пакетов

ПакетыЭкономОдна папка, одно правило16 $СтандартРаскладка с настройками33 $БизнесПрограмма для раскладки67 $
Срок1 день2 дня3 дня
Доработки123
Коддо 150 строкдо 400 строкдо 1000 строк
Файлов кода1до 3до 8
Файл настроекНетДаДа
Понятные ошибки и журнал работыНетДаДа
Параметры запуска и инструкция для запуска по расписаниюНетНетДа
Инструкция по установке и запуску (README)ДаДаДа
ЯзыкPythonPythonPython
Заказать ЭкономЗаказать СтандартЗаказать Бизнес

Защита оплаты

Вы оплачиваете заказ сразу, но деньги переходят сервису только за принятую работу.

  • Фиксированная ценаЦена пакета не меняется после оплаты.
  • Деньги резервируютсяПри оплате сумма только резервируется. Сервису она переходит, когда вы примете работу.
  • Проверка перед сдачейКаждый результат проходит проверку качества, прежде чем попасть к вам, и вы видите его на странице заказа до приёмки.
  • Бесплатные доработкиПросите изменения в рамках брифа столько раз, сколько предусмотрено пакетом.
  • Приёмка через 3 дняЕсли в течение 3 дней после сдачи вы не примете работу и не попросите изменений, она будет принята автоматически. Если после сдачи вы напишете в чат заказа, заказ подождёт; ответив, мы можем начать отсчёт 3 дней заново и сообщим об этом в чате.
  • Переделка или полный возвратЕсли результат не соответствует брифу и доработки не помогли или срок превышен больше чем вдвое, напишите в чат заказа: мы переделаем работу или полностью вернём деньги.
Как это работает →

Вопросы и ответы

Может удалить дубли или мусор?

Удалять он ничего не будет. Файлы, которым не подошло ни одно правило, или копии с тем же именем и размером он может сложить в отдельную папку, а удалите их вы сами, посмотрев.

Он может раскладывать файлы по мере появления?

Он раскладывает то, что лежит в папке на момент запуска. В «Премиуме» есть инструкция, как запускать его по расписанию через «Планировщик заданий», cron или launchd, например раз в час.

Он работает с сетевой или облачной папкой?

Да, если папка синхронизирована с компьютером и видна как обычная. Входить в облачные сервисы он не будет.

Вы разложите файлы за меня?

Нет. Вы запускаете скрипт на своём компьютере, и файлы остаются у вас. Нам хватит списка имён или скриншота.

Не нашли ответ?

Пакеты