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'))