У меня есть несколько фотографий, которые были сделаны в другом часовом поясе, чем нужно. Мне нужно преобразовать текущую дату в полученное значение на 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
отредактировано для синтаксиса