使用PyExifTool将exif数据写入exif标头

时间:2018-06-20 00:38:16

标签: python-3.x exif exiftool

正在查看2015年link上的一篇有关如何使用PyExifTool写入Exif标头的文章。我尝试了一下:

import exiftool
fileno=r'DSC00001.JPG
with exiftool.ExifTool() as et:
    et.execute("EXIF:GPSLongitude=100",fileno)
    et.execute("EXIF:GPSLatitude=100",fileno)

作为回应,我收到以下错误:

TypeError: sequence item 0: expected a bytes-like object, str found

然后按照documentation中的指定,execute需要字节命令,所以我咬了一下,所以我也尝试过:

with exiftool.ExifTool() as et:
   et.execute(bytes("EXIF:GPSLongitude=100", 'utf-8'),fileno)
   et.execute(bytes("EXIF:GPSLatitude=50",'utf-8'),fileno)

但仍然出现相同的错误:

TypeError: sequence item 1: expected a bytes-like object, str found

我不确定我在做什么,Exiftool是否可以写入文件。

1 个答案:

答案 0 :(得分:1)

问题在于execute方法是低级的,并且需要字节作为两者输入的参数,这些参数是您传递的和文件名的参数。试试这个:

import exiftool
pic = b"DSC00001.JPG"
with exiftool.ExifTool() as et:
    et.execute(b"-GPSLatitude=11.1", pic)
    tag = et.get_tag("EXIF:GPSLatitude", pic)
    print(tag)