Поиск слов в 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 - не подскажу ;)

→ Ссылка