import os
def getEndLing(name):
with open(name, 'rb')as f:
file_size = os.path.getsize(name)
offset = -100
# 文件字节大小为0则返回none
if file_size == 0:
return ''
while True:
# 判断offset是否大于文件字节数,是则读取所有行,并返回最后一行
if (abs(offset) >= file_size):
f.seek(-file_size,2)
data = f.readlines()
return data[-1]
#游标移动倒数的字节数位置
f.seek(offset, 2)
data = f.readlines()
# 判断读取到的行数,如果大于1则返回最后一行,否则扩大offset
if (len(data) > 1):
return data[-1]
else:
offset *= 2
name = 'test.txt'
data = getEndLing(name)
if(data):
print(data.decode('utf-8'))