我想递归搜索包含文件名“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"
的列表。如果给定文件夹中的多个文件夹满足条件,则应将它们全部列出。这可以通过简单的循环完成,还是更复杂?
答案 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