快速读取大文件的最后一行

def get_last_line(file_name):
    offset = -10
    with open(file_name, 'rb') as f:  # 读取方式要以字节读取
        while 1:
            """
            f.seek(off, whence=0):从文件中移动off个操作标记(文件指针),正往结束方向移动,负往开始方向移动。
            如果设定了whence参数,就以whence设定的起始位为准,0代表从头开始,1代表当前位置,2代表文件最末尾位置。 
            """
            f.seek(offset, 2)
            result = f.readlines()
            if len(result) > 1:  # 至少逆序读了2行
                print(result[-1].decode('utf-8')) # 获取最后一行
                break
            offset *= 2
posted @ 2022-06-22 23:03  xuecl  阅读(123)  评论(0编辑  收藏  举报