Как спарсить все .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")]