您的位置:首页 > 编程语言 > Python开发

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

2016-04-05 20:33 603 查看

txt文件小

#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


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

txt文件大

#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不止一行
offs *= 2

print '文件' + fname + '第一行为:' + first_line
print '文件' + fname + '最后一行为:'+ last_line
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: