要在 Python 中替换文本文件中的特定行,请考虑使用 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中文网其他相关文章!