PyExifTool无法写入自定义XMP标签问题求助
PyExifTool无法写入自定义XMP标签的解决方法
问题背景
环境:Windows 10、Python 3.11.2、ExifTool 12.60
自定义XMP标签XMP:EvalHuman可正常读取,但通过PyExifTool写入时完全不生效;而EXIF原生标签(如EXIF:GPSLatitude)能正常写入。直接用ExifTool命令行则可以成功修改该自定义标签。
原实现代码
from os import path import exiftool file_path = path.relpath("./subfolder/targetfile.jpg") with exiftool.ExifToolHelper() as et: ex_res = et.execute(b"-config ExifTool_config.cnf", b"-GPSLatitude=18.91", b"-XMP:EvalHuman=TEXT", file_path) print(ex_res) with exiftool.ExifToolHelper() as et: metadata = et.get_metadata(file_path) for d in metadata: for k, v in d.items(): print(f"Dict: {k} = {v}")
运行结果
执行后输出显示文件已更新,但自定义标签未被修改:
1 image files updated ... Dict: EXIF:GPSLatitude = 18.91 Dict: XMP:XMPToolkit = Image::ExifTool 12.60 Dict: XMP:CopyDate = 2023:04:14 16:03:59+02:00 Dict: XMP:CreationTime = 16:00:51 Dict: XMP:EvalHuman = ION ...
其中XMP:EvalHuman并未被设置为预期值TEXT。
而通过ExifTool命令行执行以下命令后,自定义标签能成功写入:
exiftool -config ExifTool_config.cnf -GPSLongitude=12.34 -XMP:EvalHuman=TARGETTEXT "subfolder/targetfile.jpg"
再次运行Python脚本,结果显示标签已更新:
Dict: EXIF:GPSLatitude = 18.91 Dict: EXIF:GPSLongitude = 12.34 Dict: XMP:XMPToolkit = Image::ExifTool 12.60 Dict: XMP:CopyDate = 2023:04:14 16:03:59+02:00 Dict: XMP:CreationTime = 16:00:51 Dict: XMP:EvalHuman = TARGETTEXT
解决方案
问题出在配置文件的传递方式:原代码通过execute方法传递-config参数,但PyExifTool的ExifToolHelper需要在初始化时单独指定配置文件,而非通过命令参数传递。修改后的代码如下:
from os import path import exiftool file_path = path.relpath("./subfolder/targetfile.jpg") with exiftool.ExifToolHelper(config_file = "ExifTool_config.cnf") as et: et.execute(b"-GPSLatitude=18.91", b"-XMP:EvalHuman=TEXT", file_path) # 验证写入结果 with exiftool.ExifToolHelper(config_file = "ExifTool_config.cnf") as et: metadata = et.get_metadata(file_path) for d in metadata: for k, v in d.items(): print(f"Dict: {k} = {v}")
原因说明
ExifToolHelper会复用ExifTool进程,如果在execute中传递-config参数,该配置仅对当前单次命令生效,后续读取元数据的进程未加载自定义配置,导致无法正确识别自定义标签的写入状态;或者写入时的配置未被完整应用。通过初始化ExifToolHelper时指定config_file,能确保整个进程生命周期都加载自定义配置,从而正确处理自定义XMP标签的读写操作。
内容的提问来源于stack exchange,提问作者TxMic
相关产品推荐
相关产品推荐

