Задать вопрос
nightvich
@nightvich
ITman

Как прочитать из файла только последние 30 строк?

Вопрос лаконичный, нужен аналогичный ответ :)
Задача - получить статистику из 100500 лог-файлов, размером по 1-30 Мб.
Для ускорения процесса, считаю целесообразным читать только 30 последних строк в файле, которые содержат всю необходимую мне информацию.
Как это сделать на Python?
  • Вопрос задан
  • 7049 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 4
STLEON
@STLEON
In Console We Trust. Code hard. Or die.
import os
r = os.system("tail -n 30 /path/error.log")
print(r)
Ответ написан
Получить размер файла.
Открыть файл.
Зная размер файла сделать seek в конец.
Считывать файл посимвольно с конца до 30-ти переводов строк.

Для этого есть готовая команда tailtail -n 30 mylog.log
Ответ написан
@andrey_ado
from collections import deque

with open(file_name) as f:
        print(list(deque(f, 30)))


Или построчно
with open(file_name) as f:
        for row in deque(f, 30):
        	print (row.strip())
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы