Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python使用os.walk在目录中的所有文件上分别运行exiftool_Python_Linux_Exiftool - Fatal编程技术网

Python使用os.walk在目录中的所有文件上分别运行exiftool

Python使用os.walk在目录中的所有文件上分别运行exiftool,python,linux,exiftool,Python,Linux,Exiftool,我希望使用Python迭代一个文件夹中的所有文件,并对每个文件运行exiftool命令,因此最终我应该拥有x数量的文件,每个文件都有自己的exiftool输出来运行grep命令 目前我有这段代码(我是在一次讲座上用伪代码写的,所以可能不太准确) 如果您已经在使用python,那么只需使用一个允许您读取Exif标记并避免所有容易出错的解析的命令即可。我已将您的伪代码设置为至少可运行。通过该编辑,我可能已经解决了您的问题。现在就试着运行它。非常感谢,现在就让它运行(需要一点时间,但它正在运行,希望一

我希望使用Python迭代一个文件夹中的所有文件,并对每个文件运行
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)])