Python循环文件推荐的方式,可用于读取文本最后一行或删除指定行等
读取文本最后一行:
f = open('test11.txt', 'rb') for i in f: offset = -16 while True: f.seek(offset, 2) data = f.readlines() if len(data) > 1: print("文件的最后一行是:%s"%(data[-1].decode('gbk'))) break offset *= 2
优点:
使用for i in f是使用一行读取一行,不会消耗太多的内存,如果使用readlines就会一次性将所有的内容全部读取出来放在内存当中,会占用较多的内存。
删除文本指定行:
删除文本指定行也是用的for i in i,找到指定行的关键字,将不包括关键字的其他行放在生成器中。
将生成器包含的内容重新写入文件,当然这种效率不是很高(暂时还没想到更好的方法)
lines = (i for i in open('test11.txt', 'r') if '2019' not in i ) f = open('test33.txt', 'w', encoding="utf-8") f.writelines(lines) f.close()