python并没有直接提供读取文件倒数N行的方法,自己写了一个简易tail。
性能测试:
返回字符串:
100000行:0.219849s
10000行:0.024092s
1000行:0.004009s
def tail(file, taillines=500, return_str=True, avg_line_length=None):
"""avg_line_length:每行字符平均数,
return_str:返回类型,默认为字符串,False为列表。
offset:每次循环相对文件末尾指针偏移数"""
with open(file, errors='ignore') as f:
if not avg_line_length:
f.seek(0, 2)