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

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

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-20 09:00:18709浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn