Python - Como compactar um arquivo de texto grande sem o MemoryError?

Eu uso o seguinte script Python simples para compactar um arquivo de texto grande (por exemplo,10GB) em uma instância do EC2 m3.large. No entanto, eu sempre tive umMemoryError:

import gzip

with open('test_large.csv', 'rb') as f_in:
    with gzip.open('test_out.csv.gz', 'wb') as f_out:
        f_out.writelines(f_in)
        # or the following:
        # for line in f_in:
        #     f_out.write(line)

O rastreio que recebi é:

Traceback (most recent call last):
  File "test.py", line 8, in <module>
    f_out.writelines(f_in)
MemoryError

Eu li algumas discussões sobre esse problema, mas ainda não está claro como lidar com isso. Alguém pode me dar uma resposta mais compreensível sobre como lidar com esse problema?

questionAnswers(3)

yourAnswerToTheQuestion