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

python读取txt文件最后一行(文件大+文件小)

创建时间:2016-04-05 投稿人: 浏览次数:11361
#coding:utf-8
"""
fname为所读xx.txt文件
输出为:文件第一行和最后一行
"""

fname = "test.txt"
with open(fname, "r") as f:  #打开文件
    lines = f.readlines() #读取所有行
    first_line = lines[0] #取第一行
    last_line = lines[-1] #取最后一行     
    print "文件" + fname + "第一行为:" + first_line
    print "文件" + fname + "最后一行为:"+ last_line

当文件很大时,采用这种方法不可行,资源浪费太大,采用下面方案。

#coding:utf-8
"""
f_name为所读xx.txt文件
输出为:文件最后一行
"""

fname = "test.txt"
with open(fname, "r") as f:  #打开文件
    first_line = f.readline()  #读第一行
    off = -50      #设置偏移量
    while True:
        f.seek(off, 2) #seek(off, 2)表示文件指针:从文件末尾(2)开始向前50个字符(-50)
        lines = f.readlines() #读取文件指针范围内所有行
        if len(lines)>=2: #判断是否最后至少有两行,这样保证了最后一行是完整的
            last_line = lines[-1] #取最后一行
            break
        #如果off为50时得到的readlines只有一行内容,那么不能保证最后一行是完整的
        #所以off翻倍重新运行,直到readlines不止一行
        off *= 2

    print "文件" + fname + "第一行为:" + first_line
    print "文件" + fname + "最后一行为:"+ last_line
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。