打开此文件时,为什么Python会产生MemoryError

时间:2015-04-22 16:08:12

标签: python memory io

我正在尝试从文件中删除空行。我的方法是逐行读取文件,并将任何不仅仅是换行符的行写入新文件。它适用于小文件,但由于我不明白的原因,我在较大的文件上遇到了MemoryError。问题文件超过1GB,但由于我是逐行读取它,我不认为我在内存中存储了多行。还是我?

with open(output_path, "ab+") as out_file:
    with open(input_path, "rb") as in_file:
        line = in_file.readline()
        while line:
            if line != "\n":
                out_file.write(line)
            line = in_file.readline()

当我将文件拆分成块时,它工作正常,但这是我不想做的一步。我想了解这里发生了什么。谢谢!

1 个答案:

答案 0 :(得分:0)

事实证明问题出在代码的其他地方。我没有明确关闭文件,导致了这个问题。谢谢大家的帮助。