牛骨文教育服务平台(让学习变的简单)
博文笔记

Python读取大文件的最后N行

创建时间:2016-06-25 投稿人: 浏览次数:867


import linecache

filename = "/root/log_history.txt"

# 放入缓存防止内存过载
def get_line_count(filename):
    line_count = 0
    file = open(filename,"r+")
    while True:
        buffer = file.read(8192 * 1024)
        if not buffer:
            break
        line_count += buffer.count(" ")
    file.close()
    return line_count

if __name__ == "__main__":
    n = 30      #get the last 30 lines
    linecache.clearcache()
    line_count = get_line_count(filename)
    print("line count total:",line_count)
    line_count = line_count - 30
    print("line_count:[%s]" % line_count)

    for i in range(n+1):        #the last 30 lines
        last_line = linecache.getline(filename, line_count)
        print("line:[%s],%s" % (line_count,last_line))
        line_count += 1

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。