如何禁用pyexiftool的-n选项并传递common_args覆盖默认配置?
解决pyexiftool禁用默认-n选项的问题
要让LensID等字段显示人性化可读格式,需要覆盖ExifToolHelper默认的-n参数,具体实现如下:
修改初始化代码
ExifToolHelper的构造函数支持通过common_args参数替换默认的通用参数(默认值为['-n']),直接传入你需要的参数列表即可禁用-n:
import logging import exiftool # 假设已定义SELECTED_FIELDS和config SELECTED_FIELDS = ["LensID", "FileName"] with exiftool.ExifToolHelper( logger=logging.getLogger(__name__), common_args=['-G'] # 替换默认的-n,添加需要的参数 ) as et: metadata = et.get_metadata(config["files"]["PictureDirectory"], params=SELECTED_FIELDS)
原理说明
ExifToolHelper默认会给exiftool命令添加-n参数(输出机器可读的原始值),通过common_args传入自定义参数列表后,会完全替换默认的参数集合,这样就去掉了-n,LensID等字段会自动显示为友好的名称而非数字ID。
如果需要同时保留其他默认行为(实际上默认只有-n),只需在common_args中包含你需要的参数即可,比如需要-G(显示组名)同时禁用-n,就传['-G']。
内容的提问来源于stack exchange,提问作者Gilbert Houtekamer
相关产品推荐
相关产品推荐

