LINUX.ORG.RU

История изменений

Исправление aarexer, (текущая версия) :

Ну что-то типа такого. Переходим в конец, откатываемся «вверх» на 1024, читаем, находим все последнюю «метку» в прочитанном - с нее и будет наша нужная информация. Это при условии, что мы за один раз прочитаем хотя бы один кусок

====== CHECKTIME  2015-06-12-16:50:10
полезная информация1
полезная информация2
полезная информация3
Если мы не сможем сделать этого - возможно два пути.

1) Переделать все и читать вообще построчно(что правильнее)

2) Просто увеличить число считанных байт.

#!/usr/local/bin/python3.4
#coding=utf-8
with open("example.txt", "r") as f:
	f.seek(0, 2)
	fsize = f.tell()
	f.seek(max(fsize - 1024, 0), 0)
	lines = f.readlines()

for x in lines[::-1]:
	if x.startswith("====== CHECKTIME"):
		start = lines.index(x)
		break


print(lines[start + 1:])

Плюс как уже советовали можно ввести метку о не формате.

Исходная версия aarexer, :

Ну что-то типа такого. Переходим в конец, откатываемся «вверх» на 1024, читаем, находим все последнюю «метку» в прочитанном - с нее и будет наша нужная информация. Это при условии, что мы за один раз прочитаем хотя бы один кусок

====== CHECKTIME  2015-06-12-16:50:10
полезная информация1
полезная информация2
полезная информация3
Если мы не сможем сделать этого - возможно два пути. 1) Переделать все и читать вообще построчно(что правильнее) 2) Просто увеличить число считанных байт.

#!/usr/local/bin/python3.4
#coding=utf-8
with open("example.txt", "r") as f:
	f.seek(0, 2)
	fsize = f.tell()
	f.seek(max(fsize - 1024, 0), 0)
	lines = f.readlines()

for x in lines[::-1]:
	if x.startswith("====== CHECKTIME"):
		start = lines.index(x)
		break


print(lines[start + 1:])

Плюс как уже советовали можно ввести метку о не формате.