@kekekfds

Как выбрать последнюю строку в которой было определенное слово?

word = u'какое-то слово'
with open('файл.log', encoding='utf-8') as file:
    for line in file:
        if word in line:
            print (file.read(10))

Показываются все строки в которых было какое-то слово, а мне нужна только последняя как сделать?
  • Вопрос задан
  • 88 просмотров
Решения вопроса 1
@DenisShahbazyan
Может через "одно место", но работает...
word = 'python'

last_line = ''
with open('файл.log', encoding='utf-8') as file:
    while True:
        file_line = file.readline()
        if not file_line:
            break
        if word in file_line:
            last_line = file_line

print(last_line)


Можно через библиотеку ССЫЛКА
from file_read_backwards import FileReadBackwards


word = 'python'

with FileReadBackwards('log.log', encoding="utf-8") as frb:
    while True:
        line = frb.readline()
        if not line:
            break
        if word in line:
            print(line)
            break
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Вам бы, сударь, основы алгоритмизации подучить. Так не пойдёт.
А тем, кто набредёт на вопрос, могу предложить задачу - сделать это односточником.

Решение тут:
spoiler

functools.reduce(lambda a, b: a and b, filter(lambda line: word in line, open('файл.log')))

Упадёт с ошибкой, если строк со словом в файле нет.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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