编辑 xmp 标签 pyexiv2 modify_xmp 不能正确替换 xmp 标签
Editing xmp tags pyexiv2 modify_xmp does not replace xmp tags correctly
我正在尝试编写一个脚本,该脚本将遍历大量图像并根据特定条件编写新的 xmp 标签。
我正在使用 pyexiv2
读取和修改 'Xmp.dc.subject'
标签。
我可以为图像分配一组新的标签,并且使用 pyexiv2.read_xmp()
检查我的结果表明新的标签组已经替换了旧的标签组,正如预期的那样。
但是,当我在 windows 资源管理器或其他照片管理器中检查属性时,除了新标签集之外,旧标签仍然存在。
查看下面我的代码
from pyexiv2 import Image
path=some_path
img=Image(path)
tags=img.read_xmp()
tags.get('Xmp.dc.subject') ####outputs list of tags ['old_tag1', 'old_tag2', 'old_tag3']
newtags=['new_tag1','new_tag2']
dict1={'Xmp.dc.subject':newtags}
img.modify_xmp(dict1)
img.close()
现在,当我在资源管理器中打开文件的属性时,或者在照片管理软件中查看时,文件上的标签是['old_tag1', 'old_tag2', 'old_tag3','new_tag1','new_tag2']
。 pyexiv2
教程中所述的预期行为是新标签列表将 替换 旧标签。
我曾尝试使用 py3exiv2
,但由于引用 Microsoft Visual Studio 的错误,我在使用该库时遇到问题。
有没有办法使用 pyexiv2
或使用任何其他方法来理想地实现我的结果?
我找到了解决这个问题的方法。
Windows explorer(和 Adbobe Bridge,我猜还有其他软件)同时显示 xmp 标签和 iptc 标签。
因此,如果您只修改 xmp 标签,资源管理器(或其他软件)将显示新的 xmp 标签以及旧的 iptc 标签。
所以解决方案是使用modify_xmp()
和modify_iptc()
来更改两组标签。
我正在尝试编写一个脚本,该脚本将遍历大量图像并根据特定条件编写新的 xmp 标签。
我正在使用 pyexiv2
读取和修改 'Xmp.dc.subject'
标签。
我可以为图像分配一组新的标签,并且使用 pyexiv2.read_xmp()
检查我的结果表明新的标签组已经替换了旧的标签组,正如预期的那样。
但是,当我在 windows 资源管理器或其他照片管理器中检查属性时,除了新标签集之外,旧标签仍然存在。
查看下面我的代码
from pyexiv2 import Image
path=some_path
img=Image(path)
tags=img.read_xmp()
tags.get('Xmp.dc.subject') ####outputs list of tags ['old_tag1', 'old_tag2', 'old_tag3']
newtags=['new_tag1','new_tag2']
dict1={'Xmp.dc.subject':newtags}
img.modify_xmp(dict1)
img.close()
现在,当我在资源管理器中打开文件的属性时,或者在照片管理软件中查看时,文件上的标签是['old_tag1', 'old_tag2', 'old_tag3','new_tag1','new_tag2']
。 pyexiv2
教程中所述的预期行为是新标签列表将 替换 旧标签。
我曾尝试使用 py3exiv2
,但由于引用 Microsoft Visual Studio 的错误,我在使用该库时遇到问题。
有没有办法使用 pyexiv2
或使用任何其他方法来理想地实现我的结果?
我找到了解决这个问题的方法。 Windows explorer(和 Adbobe Bridge,我猜还有其他软件)同时显示 xmp 标签和 iptc 标签。
因此,如果您只修改 xmp 标签,资源管理器(或其他软件)将显示新的 xmp 标签以及旧的 iptc 标签。
所以解决方案是使用modify_xmp()
和modify_iptc()
来更改两组标签。