#获取文件倒数第n行
def getTail(file,num):
readlen=1024 #每次多偏移1024字节
readoffset=0 #每次从文件末尾向前偏移量
linenum=0 #当前读取的行号
preindex=None #上一个换行符所在位置
while True:
readoffset=readoffset+readlen #文件每次偏移readoffset个字符
if file.seek(readoffset,2)==None:
file.seek(0,0) #若无num行则移到开始处
readline=file.read()
if preindex==None: #当为第一次查找换行符
index=readline.rfind('\n')
else:
index=readline.rfind('\n',0,preindex-1) #否则从前一个换行符开始找
while index>-1: #获取读取文本中总共的行数
linenum=linenum+1
if linenum==num:
return readline[index:preindex]
preindex=index
index=readline.rfind('\n',0,preindex-1)
if linenum!=num: #若无这么多行,报错
print("ERROR:this file only have %d lines"%(linenum))
return None
python获取文件倒数第n行
猜你喜欢
转载自blog.csdn.net/sinat_30477313/article/details/81836283
今日推荐
周排行