python3 读取大文本最后指定行数内容
import sys import os
import string#python2写法
RCV_LOG = r"C:\Users天宇Desktop\out"
def get_last_n_lines(logfile, n):
n=int(n)#python3写法
#n=string.atoi(n)#python2写法blk_size_max = 4096 n_lines = [] with open(logfile, "rb") as fp: fp.seek(0, os.SEEK_END) cur_pos = fp.tell() while cur_pos > 0 and len(n_lines) < n: blk_size = min(blk_size_max, cur_pos) fp.seek(cur_pos - blk_size, os.SEEK_SET) blk_data = fp.read(blk_size) assert len(blk_data) == blk_size lines = blk_data.split(b" ") # adjust cur_pos if len(lines) > 1 and len(lines[0]) > 0: n_lines[0:0] = lines[1:] cur_pos -= (blk_size - len(lines[0])) else: n_lines[0:0] = lines cur_pos -= blk_size fp.seek(cur_pos, os.SEEK_SET) if len(n_lines) > 0 and len(n_lines[-1]) == 0: del n_lines[-1] return n_lines[-n:] print(get_last_n_lines(RCV_LOG, "5"))
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了
