入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

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

创建时间:2016-04-05 投稿人: 浏览次数:11287
#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
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像