@danilok4774

Как осуществить поиск по ключевому слову в файле всех строк где оно присутствует?

Есть файл, в нем несколько строк.
Мне нужно осуществить поиск ключевого слова или фразы в файле, чтобы нашлись все строки содержащие это слово или эту фразу.
Я знаю что это делается через библиотеку re
Там есть re.findall(r'шаблон', 'текст для поиска')
Нужно сделать это через имя переменной. Ну например это переменная var1 и var2. Мне нужно заменить тексты в кавычках именами переменных, но как?
И еще нужно чтобы на месте 'текст для поиска' было имя переменной содержащей путь к файлу, в котором нужно производить поиск. Файл текстовый. Искать нужно по всему файлу.

Надеюсь, поможете)
Заранее спасибо
  • Вопрос задан
  • 2433 просмотра
Пригласить эксперта
Ответы на вопрос 2
@fireSparrow
Регулярные выражения - очень мощный инструмент, а у вас совсем простая задача.

Для вашего случая вместо re.findall лучше использовать проверку на вхождение подстроки с помощью ключевого слова in.

with open(filename,"r") as myfile:
    for line in myfile:
        if var1 in line:
            print(line)


Здесь вместо filename вставляете путь и имя к вашему файлу, а вместо var1 - что нужно искать.
Ну и вместо print(line) можете делать с найденной строкой line всё, что вам нужно - например, куда-то сохранить.
Ответ написан
Комментировать
@keich
Инженер по системам мониторинга от IBM
Тяжело понять. Надо на питоне?
import re
filename="file.txt"
pattern="\S*y{2,5}\S* "
prog = re.compile(pattern)
with open(filename,"r") as myfile:
    for line in myfile:
        if prog.match(line):
            print(line)


А может просто grep нужен?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы