Python: ¿cómo comprimir un archivo de texto grande sin MemoryError?

Utilizo el siguiente script simple de Python para comprimir un archivo de texto grande (por ejemplo,10GB) en una instancia EC2 m3.large. Sin embargo, siempre tengo unMemoryError:

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)

El rastreo que obtuve es:

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

He leído algunas discusiones sobre este tema, pero aún no tengo muy claro cómo manejarlo. ¿Puede alguien darme una respuesta más comprensible sobre cómo lidiar con este problema?

Respuestas a la pregunta(3)

Su respuesta a la pregunta