Как пакетно переименовать файлы JPEG к дате изображения, добавив счетчик, который сбрасывается для каждого дня?

Я использую pyrenamer с моей коллекцией фотографий, и она отлично работает, за исключением одного выпуска. Я хочу, чтобы он переименовал фотографии по их метаданным по дате, с трехзначным номером в конце. Каждая папка в моей библиотеке представляет день, и я хочу, чтобы фотографии заканчивались цифрами от 001 до 999, начиная с 001 для каждой папки. Имя файла примера будет 2016-01-31-001.jpg.

Shotwell обрабатывает создание структуры каталогов при импорте со структурой %Y/%m/%d в опциях, но когда я рекурсивно использую pyrenamer в каталоге ~ / Pictures, я не вижу ожидаемого результата. Он переименовывается по дате, но продолжает увеличиваться в разных папках, вместо того, чтобы начинаться с 001 для каждой новой папки. Есть ли более простой способ сделать это?

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

Какой самый простой способ сделать это, пожалуйста? Мне нравится использовать pyrenamer, но скрипт bash тоже подойдет.

Токовый выход:

Pictures/
├── Folder 1/
│   ├── YY-MM-DD-001.jpg
│   └── YY-MM-DD-002.jpg
├── Folder 2/
│   ├── YY-MM-DD-003.jpg
│   └── YY-MM-DD-004.jpg
...

Желаемый выход:

Pictures/
├── Folder 1/
│   ├── YY-MM-DD-001.jpg
│   └── YY-MM-DD-002.jpg
├── Folder 2/
│   ├── YY-MM-DD-001.jpg
│   └── YY-MM-DD-002.jpg
...
2
задан 31 March 2016 в 14:58

1 ответ

Для переименования всей библиотеки изображений фотографий JPEG к YYYY-MM-DD-XXX.jpg формат, подсчитывая и начиная с-001 каждого нового дня, используют эту команду с exiftool:

exiftool -fileOrder DateTimeOriginal -recurse -extension jpg -extension jpeg -ignoreMinorErrors '-FileName<CreateDate' -d %Y-%m-%d%%-.3nc.%%e ~/Pictures/

Для объяснения команды полностью вот то, как она работает.

  1. exiftool запускает сценарий.
  2. -fileOrder DateTimeOriginal силы exiftool для обработки изображений в тот же порядок они были взяты . Это очень важно для сохранения нумерации изображения в течение дня в исходном хронологическом порядке.
  3. -recurse рекурсивно подкаталоги процессов, который полезен, если Вы используете Shotwell для импорта, потому что фотографии помещаются в каталоги, организованные по дате.
  4. -extension jpg -extension jpeg удостоверится, что только файлы JPEG обрабатываются. (Обратите внимание, что они не являются определенными для случая и jpg=JPG, таким образом, мы ловим все)
  5. -ignoreMinorErrors, Игнорируют любые ошибки, которые не влияют на наш желаемый результат (обычно проблемы, читая несвязанные теги, которые не необходимы для этой операции).
  6. '-FileName<CreateDate' Помещает созданную дату фотографии в имя файла.
  7. -d %Y-%m-%d%%-.3nc.%%e Здесь -d наборы желаемый выходной формат даты. Мы будем использовать написанный через дефис год из четырех знаков затем двухразрядный месяц и день (%Y-%m-%d) сопровождаемый трехзначным числом, запускающимся с 001 (%%-.3nc), сохраняя исходное расширение файла (.%%e).
  8. ~/Pictures/ последний объект, это - просто каталог, который exiftool должен обработать с командой.

примечание А об ошибках, эти -ignoreMinorErrors помогает, но тем не менее можно видеть, что сообщение "Предупреждает: Плохой каталог PreviewIFD" , который является безопасен проигнорировать или "Предупреждение: Никакой перезаписываемый набор тегов из /path/to/problem/image.jpg" . Второй, который я не мог разрешить, но я только, видел его для нескольких изображений, таким образом, я вручную переименовал их в Наутилусе как обходное решение.

Эта команда могла все еще быть улучшена, но она тестируется и работающий над большим (40 ГБ, 13 000 изображений) фото библиотека, и это быстро и не производит ошибок, только не удаваясь переименовать случайное изображение, которое пропускает тег, который создаст большая часть любой современной камеры.

3
ответ дан 1 April 2016 в 00:58

Другие вопросы по тегам:

Похожие вопросы: