搜索目录中包含某些文件的目录?

时间:2013-01-05 16:02:16

标签: python

我想递归搜索包含文件名“x.txt”和“y.txt”的文件夹的文件夹。例如,如果存在/path/to/folder/path/to/folder/one/two/three/four/x.txt/path/to/folder/one/two/three/four/y.txt,则应返回包含项"/path/fo/folder/one/two/three/four"的列表。如果给定文件夹中的多个文件夹满足条件,则应将它们全部列出。这可以通过简单的循环完成,还是更复杂?

1 个答案:

答案 0 :(得分:2)

os.walk为您递归迭代目录结构做了艰苦的工作:

import os

find = ['x.txt', 'y.txt']

found_dirs = []
for root, dirs, files in os.walk('/path/to/folder'):
    if any(filename in files for filename in find):
        found_dirs.append(root)

#found_dirs now contains all of the directories which matched