Python shell调用exi

2024-09-29 17:11:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个图像1.tiff,我想从中将exif数据复制到另外两个图像,2.tiff和3.tiff。 在普通shell中,我可以通过键入以下命令将相同的exif数据写入多个图像

exiftool -m -overwrite_original -TagsFromFile "1.tiff" {"2.tiff","3.tiff"}

由于某种原因,我不能做这份表格。 如果我从python脚本执行相同的shell命令,即

^{pr2}$

我得到以下错误:

Error: File not found - {2.tiff,3.tiff}

但是,如果我为每个要写入的图像调用命令,它就可以工作了。i、 e

os.system('exiftool -m -overwrite_original -TagsFromFile "1.tiff" "2.tiff"')
os.system('exiftool -m -overwrite_original -TagsFromFile "1.tiff" "3.tiff"')

但是,由于我要调用该命令数千次,所以反复从1.tiff读取exif数据太慢了。 对于如何在只读取一次源映像的同时将exif数据从一个源映像复制到多个映像,您有什么建议吗?在

下面的zip文件包含一个工作的bash脚本和一个非工作的python等价物:https://www.dropbox.com/s/nm8fdkdfq7hqi8m/folder.zip?dl=1


Tags: 数据图像命令脚本键入oszipshell
1条回答
网友
1楼 · 发布于 2024-09-29 17:11:36

this问题和原始答案的启发,问题似乎是/bin/sh不支持这个大括号。因此,解决方案是在中设置executable='/bin/bash'子流程.Popen在

subprocess.Popen(['exiftool','-m','-overwrite_original','-TagsFromFile','1.tiff','{"2.tiff","3.tiff"}'],executable='/bin/bash')

相关问题 更多 >

    热门问题