rdavid: (Default)
rdavid ([personal profile] rdavid) wrote2009-07-14 11:57 pm

Именование фото-файлов

В жизни любого обладателя цифровой камеры наступает момент, когда трудно найти нужную фотографию. Ищешь прошлогодние фотографии со дня рождения подруги жены? Вроде, скидывал вот сюда... или сюда... короче, где-то точно есть, но где? Обладателю цифровой камеры очень быстро становится ясно, что нужна единая система именований файлов, которая позволит быстро находить фотографии.

Опишу мои этапы большого пути. Начинал я с простой системы, назовём её Алеф:
1. создать каталог вида "День Рождения Лены 2002"
2. в созданный каталог скопировать файлы с фотоаппарата вида IMG_0804.jpg

Мысль о неудобности выбранного способа, приходит, когда количество каталогов превысит пятьдесят. Поиск среди дней рождений, морских прогулок и встреч в лесу становится невыносимым. У меня система Алеф продержалась около полу-года. На смену пришла система Бэт:
1. каталог вида YYYYMMDD.description, где YYYY - год, MM - месяц, DD - день, например, 20020328.lena.birthday
2. файл вида YYYYMMDD-CC.jpg, где CC - порядковый номер в серии (от 01 до 99, или 001-999), например, 20020328-36.jpg

Этот способ позволяет сортировать каталоги по времени. Также появилась уникальность отдельного файла, что позволяет комбинировать фотографии из разных каталогов, не боясь конфликта имён. Система Бэт довольно хороша, она служила мне семь лет. С течением времени обнаружились некоторые недостатки, с которыми я покорно мирился. Например, как именовать фотографии других фотографов. Я добавлял буквы 'b', 'c' или 'e' к имени, например, 20020328b-01.jpg. Или, как отсортировать по времени фотографии с двух разных камер? Простым файловым менеджером эта задача не решалась, так как время съёмки не входило в имя файла. В общем, пришла очередь системы Гимел:
1. каталог вида YYYYMMDD-what-where, где YYYY - год, MM - месяц, DD - день, what - краткое описание события, where - место события, например, 20020328-lena-birthday-jerusalem
2. файл вида YYYYMMDDHHMISS-name-CCCC.jpg, где HH - час, MI - минута, SS - секунда, CCCC - порядковый номер в серии (от 0001 до 9999, или 001-999), например, 20020328223625-rabkin-0036.jpg

Я отказался от использования точки как разделителя. За точкой закреплено разделение имени файла и его раширения, другое использование не комильфо. Я увеличил разрядность счётчика кадров, так как стал больше фотографировать, а стирать меньше.

Чтобы автоматизировать переименование файлов, я написал скрипт. Он использует бесплатную утилиту для работы с EXIF данными ExifTool. Кроме переименования, скрипт добавляет к файлам аттрибит read-only, что затрудняет случайное удаление или изменение файлов. Также скрипт переводит все буквы имени в нижний регистр.



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

[identity profile] make4um.livejournal.com 2009-07-14 09:36 pm (UTC)(link)
у меня комбинированная. Каталоги (директории) упорядочены по датам и виду съёмок. Например: "Канон2009" или "ДРабкин2008" ;о) Первый пример, как нетрудно догадаться, содержит мои фоты, второй - то, что ты нам подарил. При этом существуют отдельные большие отделения, например "УмкаБизнес2009" или Vacations2008. А уж внутри каждого - обычно по дате, а в Пикассе ещё и таги добавляюу, когда не ленюсь: семья, дети, вечеринки, друзья и т.д.

[identity profile] simon273.livejournal.com 2009-07-14 10:03 pm (UTC)(link)
У меня что то среднее, ноо ближе к твоей бет системе.
Плюс иерархия по годам.
А скрипт твой попробую.

[identity profile] make4um.livejournal.com 2009-07-14 10:03 pm (UTC)(link)
а знаешь что, Давидик, посоветую: напиши-ка ты ещё один скрипт на exiftool'e, который бы проверял рекурсивно директории (начиная с Фото или пикчерз), которые НЕ названы по твоему правилу и запускай его с помошью Hudson http://wiki.hudson-ci.org/display/HUDSON/Meet+Hudson скажем в три часа ночи, и результаты писал бу в лог. И будет у тебя с утра список всех директорий, которые тебе надо проверить ;о)

[identity profile] kinad.livejournal.com 2009-07-14 10:58 pm (UTC)(link)
Меня знаешь что бесит? Когда сгружаемые фото предлагается объединить в Группу и назвать эту группу как-то.

В принципе я пока так делаю, Folders с четким названием JerusalemZoo/ или там France/Paris/.. можно и дату присобачить.

[identity profile] ilia-limar.livejournal.com 2009-07-15 02:52 am (UTC)(link)
Система каталогов у меня абсолютно совпадает (с самого начала архивирования ее использовал), а вот файлы я не переименовываю, оставляю камерные

[identity profile] levari.livejournal.com 2009-07-15 06:30 pm (UTC)(link)
использую способ Б, взвешиваю перейти на тэги как в Пикассе.
скрипт интересен.