我的照片编辑搞砸了我的许多照片的标签。我认为这是开始熟悉Python并编写一个清除标记的脚本的最后一步。我发现pyexiv2可能会派上很大的用场,我试着基本上遵循教程(http://tilloy.net/dev/pyexiv2/tutorial.html)。
我想做的是:
在我检查编辑器中的XMP文件之前,一切看起来都很不错。改变后的价值根本就没有出现。但是,XMP文件将获得一个新的时间戳,如果我使XMP文件只读,就会得到一条错误消息。所以似乎有些东西会被写成文件。只是数据不对。
下面是一个显示我的问题的最小脚本:
import pyexiv2
key= 'Xmp.dc.subject'
metadata = pyexiv2.ImageMetadata('test.xmp')
metadata.read()
print metadata[key]
metadata[key] = ['NewTag']
print metadata[key]
metadata.write()其产出是:
<Xmp.dc.subject [bag Text] = ['OldTag']>
<Xmp.dc.subject [bag Text] = ['NewTag']>
Script terminated.但是XMP文件的相关部分仍然如下所示:
<dc:subject>
<rdf:Bag>
<rdf:li>OldTag</rdf:li>
</rdf:Bag>
</dc:subject>那么,要将修改后的元数据写入XMP文件,我必须做什么呢?
请注意,我是Python的完全初学者(但不是编程新手),所以这个问题可能是由一些我不知道的琐碎问题造成的。我正在Debian上运行Python2.7.6。
发布于 2014-02-01 11:26:07
关于pyexiv2.metadata.ImageMetadata的API文档说:
嵌入在图像中的所有元数据的容器。 它提供了使用Python类型对嵌入在JPEG和TIFF文件等图像文件中的EXIF、IPTC和XMP元数据进行操作的方便方法。它还提供对嵌入在图像中的预览的访问。
看起来,sidecar文件可能不支持写入。
https://stackoverflow.com/questions/21466796
复制相似问题