码迷,mamicode.com
首页 > 其他好文 > 详细

21 读取文件最后一行

时间:2018-06-26 21:54:26      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:lines   运行   读取文件   字符   设置   文件   表示   lin   ast   

1,当读取的文件不大时

#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(文件%s第一行为: % first_line)
    print(文件%s最后一行为:% last_line)

2,当文件比较大时,readlines()会一次性读取全部数据到内存,会浪费内存资源。

#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(‘文件%s第一行为:‘ % first_line)
    print(‘文件%s最后一行为:‘% last_line)

 

21 读取文件最后一行

标签:lines   运行   读取文件   字符   设置   文件   表示   lin   ast   

原文地址:https://www.cnblogs.com/jeavy/p/9231339.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!