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

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

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

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

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

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

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

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

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

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

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

20 Апр в 13:16
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 94 956 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир