Если вы хотите напрямую go, до конца файла. Выполните следующие действия:
1. Каждый раз, когда ваша программа запускается, сохраняйте или сохраняйте последний индекс '\ n'.
2. Если вы сохранили индекс последнего '\ n', то вы можете непосредственно ищите этот индекс, используя
file.seek(yourpersistedindex)
3.a после этого, когда вы позвоните file.readline()
, вы получите строки, начинающиеся с вашегоpersistedindex.
4. Сохраняйте этот индекс каждый раз, когда вы запускаете ваш script.
Например: ваш файл log.txt содержит содержимое, например:
timestamp1 \ n timestamp2 \ n timestamp3 \ n
import pickle
lastNewLineIndex = None
#here trying to read the lastNewLineIndex
try:
rfile = open('pickledfile', 'rb')
lastNewLineIndex = pickle.load(rfile)
rfile.close()
except:
pass
logfile = open('log.txt','r')
newLastNewLineIndex = None
if lastNewLineIndex:
#seek(index) will take filepointer to the index
logfile.seek(lastNewLineIndex)
#will read the line starting from the index we provided in seek function
lastLine = logfile.readline()
print(lastLine)
#tell() gives you the current index
newLastNewLineIndex = logfile.tell()
logfile.close()
else:
counter = 0
text = logfile.read()
for c in text:
if c == '\n':
newLastNewLineIndex = counter
counter+=1
#here saving the new LastNewLineIndex
wfile = open('pickledfile', 'wb')
pickle.dump(newLastNewLineIndex,wfile)
wfile.close()