Ошибка памяти - Python (огромные изменения файлов)

Я пытаюсь изменить Конец строки (EOL) файла с Windows на Linux, размер файла составляет 50 ГБ и записываю в тот же файл. Ниже приведен мой код:

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 ответ

Это может быть из-за размера файла. (это может быть слишком большим)

Считывание большого файла в память сразу приводит к возникновению этой ошибки.

Вы можете обработать это, прочитав файл построчно с кодом ниже:

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, Вы также можете посмотреть на ошибку памяти из-за огромного размера входного файла

Другие вопросы по тегам