首页 > 后端开发 > Python教程 > 如何使用Python高效地替换文本文件中的行?

如何使用Python高效地替换文本文件中的行?

Mary-Kate Olsen
发布: 2024-12-20 09:00:18
原创
715 人浏览过

How Can I Efficiently Replace Lines in a Text File Using Python?

高效替换文本文件中的行

要在 Python 中替换文本文件中的特定行,请考虑使用 fileinput 模块。此方法避免了将整个文件加载到内存中,从而对于大文件来说更加高效。

使用 fileinput

import fileinput

with fileinput.input("test.txt", inplace=True) as f:
    for line in f:
        if "foo" in line:
            print(line.replace("foo", "bar"), end='')
登录后复制

使用此代码,将原始文件重命名为备份,并且标准输出被重定向以写入循环内的原始文件。循环内的任何打印语句都会直接修改文件的内容。

显式文件操作

为了提高可读性,请考虑这些显式选项:

选项 1(对于小文件) ):

with open("test.txt", "r") as f:
    lines = f.readlines()

with open("test.txt", "w") as f:
    for line in lines:
        if "foo" in line:
            f.write(line.replace("foo", "bar"))
        else:
            f.write(line)
登录后复制

选项 2(对于大型文件):

import tempfile

with open("test.txt") as original, tempfile.NamedTemporaryFile(delete=False) as temp:
    for line in original:
        if "foo" in line:
            temp.write(line.replace("foo", "bar").encode())
        else:
            temp.write(line.encode())

temp.flush()
os.replace(temp.name, "test.txt")
登录后复制

以上是如何使用Python高效地替换文本文件中的行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板