Как спарсить все .txt файлы в большом кол-ве папок?

Нужно в +- 10.000 папках найти все .txt файлы с ключевым словом внутри них (к примеру, "doma").

Пути к этим .txt могут быть разными, и в каждой папке несколько таких файлов.

Пробовал через import glob, os сделать - хотя бы начать - но не то. Очень прошу помочь, если не кодом, то хотя бы понятным для новичка объяснением, что мне надо прочитать и узнать чтобы это сделать?


Ответы (2 шт):

Автор решения: Jack_oS

Попробуйте с помощью os.walk():

import os

for root, dirs, files in os.walk('/'):
    for f in files:
        if os.path.splitext(f)[1] == '.txt' and 'doma' in os.path.splitext(f)[0]:
            full_path = os.path.join(root, f)
            print(full_path)
→ Ссылка
Автор решения: MaxU

Можно воспользоваться Path.glob():

from pathlib import Path

start_dir = Path("/")

res = [str(f) for f in start_dir.glob("**/*doma*.txt")]

если искать нужно всегда с корня, то решение можно немного сократить:

from pathlib import Path

res = [str(f) for f in Path("/").glob("**/*doma*.txt")]
→ Ссылка