Как отсортировать большое количество фотографий? Добрый день. Решил сделать себе копию семейного архива. После сбора со всех источников получится большая вложенная структура из папок, фотографии и видео-контента (около 100 гигабайт). Надо отсортировать фотографии в упорядоченную структуру (допустим - Camera/YYYY/MM/DD). Для обработки была принята идея писать небольшую программу (стоит debian). На данный момент алгоритм такой:
1. Найти все jpg в выбранной папке.
2. Для каждого jpg проверить заголовки (могу ошибаться, но они вроде есть в jpg) на целостность (мало ли файл повреждён или файл не является фотографией, а просто файлом с расширением jpg).
3.Информацию о каждом файле (имя и относительный путь, хэш, exif-тэги) записать в csv файл (или что-то подобное).
4.Найти дубликаты и применить фильтры (допустим - должны быть все exif тэги).
5.Скопировать/переместить оставшиеся файлы в заданную структуру папок.
Как это будет лучше реализовать, можно ли оптимизировать алгоритм?

21 Авг 2019 в 06:32
308 +1
0
Ответы
1

Для реализации данного алгоритма можно использовать язык программирования Python, так как он имеет множество готовых библиотек для работы с изображениями и EXIF-данными.

Вот примерный план оптимизации алгоритма:

Использовать библиотеку os.walk для рекурсивного обхода всех папок в выбранной директории и нахождения всех файлов формата jpg.

Использовать библиотеку Pillow для проверки целостности заголовков jpg файлов.

Для каждого jpg файла считать exif-теги и записывать информацию о файле в csv файл.

Для определения дубликатов можно использовать хэширование изображений например,хешMD5илиSHA−256например, хеш MD5 или SHA-256например,хешMD5илиSHA256. Также можно сравнивать exif-теги для определения сходства файлов.

Для копирования/перемещения файлов в заданную структуру папок можно использовать функцию shutil.copy или shutil.move.

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

Такой подход позволит эффективно отсортировать большое количество фотографий в упорядоченную структуру.

20 Апр 2024 в 13:16
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир