Поиск файлов с поисковыми терминами в python - PullRequest
0 голосов
/ 04 июня 2018

Попытка найти искомое слово в пачке текстового документа в папке, используя такой подход:

dirname = '/Users/user/Documents/dat/'
search_terms = ['kek']

for f in os.listdir(dirname):

    text = open(os.path.join(dirname,f)).readlines() 

    if any(term in text for term in search_terms):

        print (f)

Почему-то не знаю почему, это дает мне имя первого файла в каталогене имеет значения, является ли это поисковым запросом или нет.Что нужно сделать по-другому, чтобы правильно выполнить эту задачу?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Поскольку, когда вы найдете правильный термин в файле, вы не печатаете термин, вы печатаете имя файла, f.

Попробуйте:

    for line in text:
        if any(term in line for term in search_terms):
            print(line)

Такжене забудьте либо закрыть файл, когда закончите, либо использовать с

0 голосов
/ 04 июня 2018

Если я вас правильно понял, вам нужно.

dirname = '/Users/user/Documents/dat/'
search_terms = ['kek']

for f in os.listdir(dirname):
    with open(os.path.join(dirname,f), "r") as infile:
        text =  infile.read()

    if any(term in text for term in search_terms):
        print (f)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...