Поиск слов в txt файле
Есть, файл с расположение документов в ОС.
Пример: C:\дом\кот.txt, C:\дом\сабака.txt
Нужно выполнить поиск по списку ключевых слов.
Пример списка: кот,крот,лиса...итд.
Если есть совпадения со списком, то выделить строчку, куда входит это слово, красным цветом.
with open("c:/fail.txt", 'r') as file:
for line in file for spisokslov in spisokslovs:
if line in fnmatch.filter(file, f"{spisokslovs}"):
print(line)
Ответы (1 шт):
Автор решения: Jack_oS
→ Ссылка
Для подобного файла:
C:\дом\кот.txt
C:\дом\сабака.txt
C:\дом\хомяк.txt
C:\поле\крот.txt
C:\лес\лиса.txt
C:\лес\волк.txt
Вычитайте сожержимое в content:
with open("c:/fail.txt", 'r') as f:
content = f.readlines()
уберите (при необходимости) символы \n в конце:
content = [c.strip() for c in content]
задайте список для сравнения:
animals_wild = ['волк', 'лиса', 'крот']
и сравнивайте каждую строку с каждым элементом списка:
for c in content:
for a in animals_wild:
if a in c:
print(c)
Должно вывести:
C:\поле\крот.txt
C:\лес\лиса.txt
C:\лес\волк.txt
Все вместе:
with open("c:/fail.txt", 'r') as f:
content = [x.strip() for x in f.readlines()]
animals_wild = ['волк', 'лиса', 'крот']
for c in content:
for a in animals_wild:
if a in c:
print(c)
PS так можно получить "отфильтрованные" строки и, например, записать их в другой файл... но как выделить красным цветом строчку в .txt - не подскажу ;)