Как добавить свойства даты и времени в мои файлы JPG с помощью Python для правильной индексации в Google Фото? - PullRequest
0 голосов
/ 09 ноября 2019

Я работаю с комплектом камеры, который создает изображения с датой и временем, сохраненными как их имена файлов (например, «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Географ (не опытный кодер, поэтому извиняюсь за любые глупые вопросы)

...