首页 > 解决方案 > 保存关键字后如何防止IPTCInfo3复制原件?

问题描述

我在我的 Python 应用程序中使用 IPTCInfo3 将关键字写入图像的 IPCT 元数据。出于某种原因,如果我使用info.save()它会创建原始副本的副本,例如它将关键字写入 Clean.JPG,但也会创建 Clean.JPG~ 没有关键字。

如果我info.save_as('Clean.jpg')改用(尝试强制它覆盖原始文件),它不会将关键字写入文件。有针对这个的解决方法吗?

import iptcinfo3

new_keyword = ["cool", "sad", "blah"]
info = iptcinfo3.IPTCInfo('C:/Tmp/IPTCINFO/Clean.JPG')
for keyword in new_keyword:
    if keyword.encode('UTF-8') not in info['keywords']:
        info['keywords'].append(keyword)
info.save()

标签: iptc

解决方案


这个解决方案对我有用。

您必须在文件第 695 行附近的“save_as”方法内注释掉 iptcinfo3.py 文件中的 2 行。

else:
    tmpfh.close()
    #if os.path.exists(newfile):
    #    shutil.move(newfile, newfile + '~')
    shutil.move(tmpfn, newfile)

这将写入原始文件,而不会创建新文件并留下带有“.jpg~”的文件。


推荐阅读