使用 pyexiftool 编辑/更新照片元数据的数据

Int*_*lah 3 python metadata photo exiftool

我想使用 exiftool 更新照片元数据的数据,如温度传感器、高度传感器和 GPS 经度-高度的数据。首先,我尝试在 exiftool 配置文件中使用命令行添加这些数据的新标签,并且可以正常工作。现在,我想使用 python 脚本更新数据,然后有人告诉我我可以使用execute() 方法,但我很困惑,仍然不知道如何使用这些方法。

任何人都可以帮助并给我在 exiftool 中编辑元数据的 python 脚本示例吗?

小智 5

您的具体问题的代码是:

import exiftool
et = exiftool.ExifTool("C:\Users\...\exiftool.exe")
et.execute("-GPSLongitude=10.0", "picture.jpg")
et.execute("-GPSLatitude=5.78", "picture.jpg")
et.execute("-GPSAltitude=100", "picture.jpg")
et.terminate()
Run Code Online (Sandbox Code Playgroud)

或者,您可以terminate在使用with语句时省略调用:

with exiftool.ExifTool("C:\Users\...\exiftool.exe") as et:
    et.execute("-GPSLongitude=10.0", "picture.jpg")
    et.execute("-GPSLatitude=5.78", "picture.jpg")
    et.execute("-GPSAltitude=100", "picture.jpg")
Run Code Online (Sandbox Code Playgroud)

使用该with语句确保子进程被杀死,请参阅PyExifTool 文档


如果要更改日期(创建、修改等),请确保去掉日期周围的引号。这是我花了一段时间才弄清楚的原因,因为没有发生错误处理:

命令行:

exiftool -FileModifyDate="2015:10:01 10:00:00" picture.jpg
Run Code Online (Sandbox Code Playgroud)

Python:

et.execute("-FileModifyDate=2015:10:01 10:00:00", "picture.jpg")
Run Code Online (Sandbox Code Playgroud)