Рекурсивно найти файлы в python

Я запустил следующий код, который просто ищет текущую папку

for file in os.listdir("/folder/test"):
 if fnmatch.fnmatch(file, 'text*'):
 print file

Как искать все подпапки?

1 ответ

Вы можете использовать os.walk как это

for dirpath, dirnames, filenames in os.walk("/folder/test"):
 for file in filenames:
 if fnmatch.fnmatch(file, 'text*'):
 print file

Если вы просто хотите получить все файлы,

from os import walk, path
from fnmatch import fnmatch
[path.join(dpath, file) for dpath, _, files in os.walk("/folder/test") for file in files if fnmatch(file, 'text*')]

licensed under cc by-sa 3.0 with attribution.