内存错误 - Python(巨大的文件更改)

时间:2018-05-22 09:47:55

标签: python memory-management

我正在尝试将文件的行尾(EOL)从Windows更改为Linux,文件大小为50 GB并写入同一文件,下面是我的代码:

filename = "D:\AddressEvaluation\AddressStandardization\infu\InfutorFile.txt"
fileContents = open(filename,"r").read()
f = open(filename,"w", newline="\n")
f.write(fileContents)
f.close()

它给了我这个错误:

MemoryError                               Traceback (most recent call last)
<ipython-input-3-a87efb13f002> in <module>()
      1 filename = "D:\AddressEvaluation\AddressStandardization\infu\InfutorFile.txt"
----> 2 fileContents = open(filename,"r").read()
      3 f = open(filename,"w", newline="\n")
      4 f.write(fileContents)
      5 f.close()

MemoryError: 

我错过了什么吗? 请帮帮忙?

1 个答案:

答案 0 :(得分:0)

这可能是因为文件的大小。 (可能太大了)

一次将大文件一次性读入内存会引发此错误。

您可以通过以下代码逐行阅读文件来处理此问题:

f1 = open(filename,"w", newline="\n")

with open('D:\AddressEvaluation\AddressStandardization\infu\InfutorFile.txt') as f:
    for fileContents in f:
        f1.write(fileContents)
f1.close()

这将解决MemoryError的问题。 您还可以查看Memory error due to the huge input file size