在进行数据处理过程中,常常需要查看文件的第一行和最后一行,对于比较大的文件,可以通过以下代码进行快速查看。
with open(fname, 'rb') 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
first_line = first_line.decode('utf-8')
last_line = last_line.decode('utf-8')
print('文件' + fname + '第一行为:' + first_line)
print('文件' + fname + '最后一行为:'+ last_line)