Изменение jpg «дата взятия» должно быть за 5 часов до существующего значения? - PullRequest
0 голосов
/ 03 марта 2020

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

import os
import glob
from exif import Image

rootdir = r'C:\Users\Me\Desktop\test_dir'
#18,000 seconds = 5 hours

for subdir, dirs, files in os.walk(rootdir):
    for file in files:
        if file.endswith(".jpg") or file.endswith(".jpeg"):
            old_time = file.datetime
            new_time = old_time - 18000
            #not sure how to write new_time to the date taken attribute
            file.write(file.new_time)
        else:
            continue

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

shopt -s nullglob
for dir in C:\Users\Me\Desktop\test_dir*/
do
    for file in "$dir"/*
        do
            if f in *.jpg
                then
                jhead -ta-0:05:00 *.jpg
            fi
        done
done

pause

отредактировано для синтаксиса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...