递归读取文件夹树并确定哪些文件夹包含文件

时间:2016-08-09 11:13:00

标签: python python-2.7 directory

我编写了一个程序来查看文件夹中的图像并提取嵌入的EXIF数据。目前,我使用下面的代码获取文件夹中所有文件的路径,变量' folder_name'由用户输入。然后程序使用创建的列表循环遍历所有图像。

file_names = glob(join(expanduser('~'),'Desktop',folder_name,'*'))

现在我想添加一些功能,即能够浏览文件夹树并仅返回包含图像/文件的文件夹。然后可以将此列表传递到上面的代码中以完成剩下的工作。我只需要一个指针来指示开发它的位置。

另外,如何选择并输出图像文件,由于区分大小写,在文件路径上使用endswith(.jpg)无法正常工作。

2 个答案:

答案 0 :(得分:1)

您可以这样尝试os.walk + mimetypes.guess_type

import os
import os.path
import mimetypes
top="."
imagefiles=[]
for root, dirs, files in os.walk(top):
    for fn in files:
        t,e= mimetypes.guess_type(fn, strict=False)
        if t.startswith("image/"):
            imagefiles.append(os.path.join(root,fn)

答案 1 :(得分:0)

您可以通过在比较它们之前将.lower()字符串方法应用于两个字符串来解决区分大小写问题。