Программа Python для поиска всех .txt-файлов в каталоге
В этом примере покажем три способа найти все файлы с расширением .txt в каталоге.
Что нужно знать
Пример 1. Через glob
import glob, os
os.chdir("my_dir")
for file in glob.glob("*.txt"):
print(file)
Вывод
c.txt
b.txt
a.txt
Модуль glob умеет искать файлы по шаблону:
os.chdir("my_dir")переключает текущий рабочий каталог на/my_dir.В цикле
forчерезglob()ищем файлы с расширением.txt.*означает «любой набор символов» в начале имени.
Пример 2. Через os
import os
for file in os.listdir("my_dir"):
if file.endswith(".txt"):
print(file)
Вывод
a.txt
b.txt
c.txt
Здесь используем метод endswith() для проверки расширения .txt:
в цикле проходим по всем элементам каталога
/my_dir;для каждого имени проверяем, заканчивается ли оно на
.txt.
Через os.walk
import os
for root, dirs, files in os.walk("my_dir"):
for file in files:
if file.endswith(".txt"):
print(file)
Вывод
c.txt
b.txt
a.txt
Этот пример использует os.walk(), который рекурсивно обходит каталог:
для каждого файла из
filesпроверяем, оканчивается ли имя на.txt.
Как это работает
glob хорош, когда нужен шаблонный поиск в одном каталоге. os.listdir + endswith() — простой способ для одного уровня, когда не хочется тащить glob. os.walk нужен, если файлы лежат во вложенных папках и хочется обойти всё дерево.