
我们现在有五行数据,我们想删除第三行:pig
删除文本指定行:
删除文本指定行用的是for i in i,找到指定行的关键字,将不包括关键字的其他行放在生成器中,将生成器包含的内容重新写入文件。
我们这里不用readlines是因为for i in f是使用一行读取一行,不会消耗太多的内存。如果使用readlines就会一次性将所有的内容全部读取出来放在内存当中,会占用较多的内存,且不方便我们对单行进行操作。
import os
lines = (i for i in open('test.txt', 'r') if 'pig' not in i )
f = open('test_new.txt', 'w', encoding="utf-8")
f.writelines(lines)
f.close()
os.rename('test.txt', 'test.bak')
os.rename('test_new.txt', 'test.txt')
os.remove('test.bak')
发现成功把第三行:pig删除了,我们先找到指定行的关键字,然后将其他内容放入生成器中,把生成器中的内容重新写入新的文件,把旧的文件删除,把新的文件改为之前的名字,就相当于删除指定行了。(后来我发现可以先读入内存再修改,此方法更好,可以参考另一篇bolg)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/116710.html