python删除文件指定行

python删除文件指定行我们现在有五行数据 我们想删除第三行 pig 删除文本指定行 删除文本指定行用的是 for i in i 找到指定行的关键字 将不包括关键字的其他行放在生成器中 将生成器包含的内容重新写入文件 我们这里不用 readlines 是因为 for i in f 是使用一行读取一行 不会消耗太多的内存 如果使用 readlines 就会一次性将所有的内容全部读取出来放在内存当中 会占用较多的内存


我们现在有五行数据,我们想删除第三行: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)

编程小号
上一篇 2025-01-25 07:40
下一篇 2025-02-21 09:17

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/116710.html