讀取文本最后一行:
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()