Я новичок в python и im пытается искать через txt-файл, используя ключевые слова из другого txt-файла.
Мой код выглядит так до сих пор:
testfile=open('D:Codingtestfile.txt')
keywordfile=open('D:Codingkeyword.txt')
testfile.seek(0,0)
keywordfile.seek(0,0)
for keyword in keywordfile:
print('n****************nlooking for: ', keyword)
testfile.seek(0,0)
for line in testfile:
if keyword in line:
print('keyword: ', keyword)
print('line: ', line)
Ключевое слово.txt содержит следующее:
quick
fox
jumps
И testfile.txt содержит следующее:
the quick
brown fox jumps
over the lazy dog
near the river banks
Предполагается найти каждое ключевое слово в tesfile.txt и распечатать его, однако при запуске выше кода у меня есть следующие результаты:
****************
looking for: quick
****************
looking for: fox
****************
looking for: jumps
keyword: jumps
line: brown fox jumps
Он не находит первые два ключевых слова, а вместо этого находит только последний.
Я чувствую, что это может быть просто ошибка с моей стороны, но я был бы очень признателен за вашу помощь в разъяснении, где я получил его неправильно.
Спасибо!
Я думаю, что у вас есть проблемы при чтении ключевых слов, он также может содержать \N или \t или \r символ или пробел (‘ ‘) в конце. Как насчет использования string.замените, чтобы исключить эту возможность:
или вы также можете использовать строку.strip () в python:
Во-первых, я предлагаю вам прочитать файлы один раз и сохранить их в памяти, так что вам не придется перечитывать их каждый раз. Вы можете использовать оператор Python with, поэтому вам не нужно закрывать их после обработки.
Затем ошибка в коде заключается в том, что строки в файле могут содержать символ
\n
новой строки или пробелы' '
. Python имеет удобную функцию для решения этой проблемы:strip()
. Вот код цикла:Думал об этом с макушки головы
Вы можете сделать что-то вроде этого:
Выход: