pyexiftool icon indicating copy to clipboard operation
pyexiftool copied to clipboard

writing to to Exif header using the execute() method

Open snowman907 opened this issue 6 years ago • 1 comments

My goal is to write data into the Exif-header of an image. Looking over a post from 2015 link on how to use Exiftool to write to the Exif header. I gave it a try:

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

In response, I got the following error:

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

Then as specified in the documentation, execute takes byte commands, so I bites, so I tried that too:

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

But still got the same error :

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

I am not sure what am I doing wrong, and if Exiftool can write to file. Thanks for the help. This question was also posted on StackOverflow here

snowman907 avatar Jun 20 '18 00:06 snowman907

Hi, you should change like the following

import exiftool

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

This works well for me

zhudaoruyi avatar Nov 22 '18 10:11 zhudaoruyi