PyExifTool 中是否有将元数据写入图像的方法?

Is there a method to write metadata to an image in PyExifTool?

我使用 ExifTool's '-tagsFromFile' 从命令行将 Exif 元数据从源图像复制到目标图像。想在 python 脚本中做同样的事情,这是我知道 PyExifTool 的时候。但是,我没有找到任何命令来复制或写入目标图像。我错过了什么吗?有什么办法可以解决这个问题吗?

我发现 user5008949 对类似 question 的回答建议这样做:

import exiftool
filename = '/home/radha/src.JPG'
with exiftool.ExifTool() as et:
    et.execute("-tagsFromFile",  filename , "dst.JPG")

但是,它给我以下错误:

Traceback (most recent call last):
  File "metadata.py", line 9, in <module>
    et.execute("-tagsFromFile",  filename , "dst.JPG")
  File "/home/radha/venv/lib/python3.6/site-packages/exiftool.py", line 221, in execute
    self._process.stdin.write(b"\n".join(params + (b"-execute\n",)))
TypeError: sequence item 0: expected a bytes-like object, str found

execute() 方法需要字节作为输入并且您正在传递字符串。这就是它失败的原因。

在您的情况下,代码应如下所示:

import exiftool
filename = b"/home/radha/src.JPG"
with exiftool.ExifTool() as et:
    et.execute(b"-tagsFromFile",  filename , b"dst.JPG")

请找到答案作为参考。