rdavid: (Default)
[personal profile] rdavid

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

Опишу мои этапы большого пути. Начинал я с простой системы, назовём её Алеф:
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, что затрудняет случайное удаление или изменение файлов. Также скрипт переводит все буквы имени в нижний регистр.



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

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

Date: 2009-07-14 09:45 pm (UTC)
From: [identity profile] rdavid.livejournal.com
Ты лучше скрипт зацени - часы труда :)

Тэги - песня отдельная и тоже, как выясняется, неоднозначная: бывают иерархии, синонимы и всякое такое. Как выстрою что-нибудь логичное, напишу.

Date: 2009-07-14 09:54 pm (UTC)
From: [identity profile] make4um.livejournal.com
да-да, давай-ка код инспекшн сделаем ;о)

rem if there is no first parameter default path is a current directory
if "%1" == "" (set pathname=.) else (set pathname=%1)

т.е. если я напишу в командной строке

rename.cmd kukuriku

то скрипт поймёт, что я хотел написать

rename.cmd . kukuriku

или таки я имел в виду

rename.cmd kukuriku rabkin

????

а в остальном мне понравился. ВиБи скрипт, да? ;о)

Date: 2009-07-14 10:05 pm (UTC)
From: [identity profile] rdavid.livejournal.com
Второй вариант: rename.cmd kukuriku rabkin.

Тип скрипта в Виндусе называется батсч-файл или команд-файл. Выполняется в Виндоусовсой командной строке. Страшная вещь. И задокументирована по-сташному.

Date: 2009-07-14 10:07 pm (UTC)
From: [identity profile] make4um.livejournal.com
собственно, на это я и хотел намекнуть - что первая проверка никогда не сработает

Date: 2009-07-14 10:17 pm (UTC)
From: [identity profile] rdavid.livejournal.com
В этом с позволения сказать скрипте я не нашёл способа объединить несколько команд в блок, типа:
if(a == b) {
do_it();
do_that();
}

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

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

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

Date: 2009-07-14 10:18 pm (UTC)
From: [identity profile] rdavid.livejournal.com
Угу.

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

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

Date: 2009-07-15 08:15 am (UTC)
From: [identity profile] rdavid.livejournal.com
Что-то я не понял. Ты называешь группу JerusalemZoo и бесишься :)

Возможен нелинейный подход к группам. То есть в каталог JerusalemZoo только фотографии из зоопарка, а вечерний обед в Макдональдсе куда ещё. А случайную кошку в раздел животные. Я так не делаю.

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

Date: 2009-07-15 08:17 am (UTC)
From: [identity profile] rdavid.livejournal.com
Про иерархию каталогов я собираюсь написать отдельно.

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

September 2021

S M T W T F S
    12 34
567891011
12131415161718
19202122232425
2627282930  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 24th, 2025 03:51 am
Powered by Dreamwidth Studios