iptc - 保存关键字后如何防止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()
解决方案
这个解决方案对我有用。
您必须在文件第 695 行附近的“save_as”方法内注释掉 iptcinfo3.py 文件中的 2 行。
else:
tmpfh.close()
#if os.path.exists(newfile):
# shutil.move(newfile, newfile + '~')
shutil.move(tmpfn, newfile)
这将写入原始文件,而不会创建新文件并留下带有“.jpg~”的文件。
推荐阅读
- javascript - 尽管调用了 preventDefault ,但复选框道具发生了变化
- java - 使用策略或工厂设计哪种设计模式?
- iccube - 在启动服务器上自动备份/恢复
- c# - Astar 算法不起作用(可能是错误的启发式值?)
- python - How to filter a pandas column by list of strings?
- amazon-rds - 无法从 AWS ECS Fargate 容器连接到 PostgreSQL
- python - pandas - 如何计算两列的点积,每列包含相等长度的数组?
- python - 编辑json行/nd json中的一行
- jquery - 如何在 jqGrid 中进行分页?
- ios - 使用未解析的标识符“UIScreen”;你的意思是“NSScreen”吗?DynamicTypes 在 iOS 上运行良好,但在 macOS 上却不行