为了使用Google相册中的正确索引,如何使用Python将日期时间属性添加到JPG文件中?

问题描述 投票:1回答:1

我正在使用摄影机套件来生成将日期时间另存为文件名(例如“ 2019-10-24-10-06-56.jpg”)的图像,而不是其元数据中的图像。我正在尝试编写一个Python脚本,使我能够从它们的文件名中提取日期时间,并将其添加到每个文件的日期时间元数据属性中。这样我就可以上传到Google相册可按正确的时间顺序编制索引。

根据我的收集,Google相册使用了'Created'日期时间属性,因此我认为这是我需要为每个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': {}}

但是当上传到Google相册时,这在image properties in Windows (1) /image properties (2)/日期中没有正确反映。

谢谢!

欢乐地理学家(不是经验丰富的编码员,因此对任何愚蠢的问题表示歉意)

python python-2.7 jpeg exif google-photos
1个回答
0
投票

首先感谢您的发帖-我遇到了类似的问题,您的代码给了我一些很好的提示!

© www.soinside.com 2019 - 2024. All rights reserved.