Я работаю с комплектом камеры, который создает изображения с датой и временем, сохраненными как их имена файлов (например, «2019-10-24-10-06-56.jpg»), а не в их метаданных. Я пытаюсь написать скрипт Python, который позволяет мне извлекать дату и время из их имен файлов и добавлять к свойствам метаданных даты и времени каждого файла. Это позволяет мне загружать, например, в Google Photos для правильной хронологической индексации.
Исходя из того, что я могу собрать, Google Photos использует свойство «Дата создания», поэтому я считаю, что это то, что мне нужно изменить длякаждый файл JPG. Какой лучший способ сделать это? Я пробовал несколько вещей, включая изменение данных EXIF (успешно, с использованием piexif), но это, похоже, не меняет свойства изображения, как показано в Windows, и все еще не правильно индексирует в Google Фото.
Желая сделать это в Python, если это возможно (я использую Python 2.7) - уже написан код для извлечения даты и времени из имени файла.
Следующий код, по-видимому, успешно изменяет данные EXIF:
from datetime import datetime
import piexif
import os
jpgFolder = r"C:\Users\srgan\Desktop\Naturewatch Camera Photos\NaturewatchCameraPhotos_24Oct19"
## count number of photos found
listOfFiles = os.listdir(jpgFolder)
fileCount = len(listOfFiles)
## create datetimeString from JPG filename
for jpg in os.listdir(jpgFolder):
filepath = jpgFolder + "\\" + jpg
year = jpg[0:4]
month = jpg[5:7]
day = jpg[8:10]
hour = jpg[11:13]
mins = jpg[14:16]
datetimeStringNew = day + "/" + month + "/" + year + " " + hour + ":" + mins
## change exif datetimestamp for "Date Taken"
exif_dict = piexif.load(filepath)
exif_dict['Exif'] = { piexif.ExifIFD.DateTimeOriginal: datetime(2019, 10, 25, 1, 1).strftime("%d:%m:%Y %H:%M") }
exif_bytes = piexif.dump(exif_dict)
piexif.insert(exif_bytes, filepath)
, правильно возвращая следующее:
{'Exif': {36867: '25:10:2019 01:01'}, '0th': {34665: 26}, 'Interop': {}, '1st': {}, 'thumbnail': None, 'GPS': {}}
, но это не отражено в свойства изображения в Windows (1) / свойства изображения (2) / датированы правильно при загрузке в Google Photos.
Спасибо!
The JollyГеограф (не опытный кодер, поэтому извиняюсь за любые глупые вопросы)