Raskidator-3000 🗂️

Сортировка изображений по EXIF дате.

Сканирует папку, читает EXIF (DateTimeOriginal), создаёт подпапки Год/Месяц/День (или Год/Месяц с --group-by month) и перемещает файлы.

Поддерживаемые форматы

.jpg .jpeg .png .heic .tiff .tif .webp .bmp .cr2 .cr3 .nef .arw .dng (Raw) .avi .mp4

Установка

pip install -r requirements.txt

Для Raw-форматов (CR2, NEF и т.д.) нужен rawpy. Для HEIC нужен pillow-heif. Оба ставятся только на Windows (sys_platform == 'win32').

Использование

# Текущая папка
python organize.py

# Указанная папка
python organize.py "D:\Фото\Скопировать"

# Только посмотреть, что будет (ничего не перемещает)
python organize.py --dry-run

# Обработать только первые 10 файлов
python organize.py --max-files 10

# Без цвета (для пайпов)
python organize.py --no-color

# Тихий режим — только итог
python organize.py --quiet

# Группировать по месяцам (без дня)
python organize.py --group-by month

Лимит файлов

По умолчанию обрабатывается до 10 000 файлов за запуск.

Где менять:

  1. Открой organize.py любым текстовым редактором
  2. Найди MAX_FILES = 10000 (строка ~69, после EXTENSIONS)
  3. Поменяй число на нужное (например MAX_FILES = 100)
  4. Сохрани — готово

Логи

После каждого запуска создаются:

  • .raskidator-log.csv — лог перемещений (source, destination, date)
  • raskidator-undo.bat — скрипт для возврата всех файлов обратно

Контекстное меню Windows

# Установить контекстное меню
install.bat

# Удалить контекстное меню
uninstall-context-menu.bat

После установки:

Действие Результат
ПКМ на папке → Raskidator-3000 Сортировка всей папки
ПКМ на папке → Raskidator-3000 (dry-run) Только показать что будет
ПКМ на файле → Raskidator-3000 Сортировать только этот файл
Выделить файлы → Отправить → Raskidator-3000 Сортировать только выделенные файлы
Работает в библиотеках (Pictures, Music, Videos)

При сортировке отдельных файлов (--selected) лимит MAX_FILES игнорируется — обрабатываются все переданные файлы.

S
Description
Сортировка фоток по EXIF дате: Год/Месяц/День
Readme
143 KiB
0 Stars 1 Watchers 0 Forks
Languages
Python 78.3%
Batchfile 21.7%