Python使用os.walk在目录中的所有文件上分别运行exiftool
我希望使用Python迭代一个文件夹中的所有文件,并对每个文件运行Python使用os.walk在目录中的所有文件上分别运行exiftool,python,linux,exiftool,Python,Linux,Exiftool,我希望使用Python迭代一个文件夹中的所有文件,并对每个文件运行exiftool命令,因此最终我应该拥有x数量的文件,每个文件都有自己的exiftool输出来运行grep命令 目前我有这段代码(我是在一次讲座上用伪代码写的,所以可能不太准确) 如果您已经在使用python,那么只需使用一个允许您读取Exif标记并避免所有容易出错的解析的命令即可。我已将您的伪代码设置为至少可运行。通过该编辑,我可能已经解决了您的问题。现在就试着运行它。非常感谢,现在就让它运行(需要一点时间,但它正在运行,希望一
exiftool
命令,因此最终我应该拥有x
数量的文件,每个文件都有自己的exiftool
输出来运行grep
命令
目前我有这段代码(我是在一次讲座上用伪代码写的,所以可能不太准确)
如果您已经在使用python,那么只需使用一个允许您读取Exif标记并避免所有容易出错的解析的命令即可。我已将您的伪代码设置为至少可运行。通过该编辑,我可能已经解决了您的问题。现在就试着运行它。非常感谢,现在就让它运行(需要一点时间,但它正在运行,希望一切顺利:D)。关于如何将此更改为执行exiftool,以便它为每个文件提供单独的txt文件输出,您有没有查看
exiftool
文档以了解它是如何做到这一点的?或者它会在stdout上生成信息,您需要重定向它吗?OP只是想让exiftool
生成的文件与grep对抗..不,他想对所有文件运行exiftool。您的(@MartijnPieters)解决方案可能是正确的;然而,他要求任何提示,所以我希望这对他有帮助。
#!/usr/bin/python
import os
import subprocess
import sys
for root,dirs,files in os.walk(".", topdown=False):
for name in files:
print("echo", os.path.join(root, name))
subprocess.call(["exiftool", os.path.join(root, name)])