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()

 

posted @ 2019-02-15 23:50  飞鸟的梦想  阅读(2127)  评论(0编辑  收藏  举报