Python carga 2GB de archivo de texto a la memoria
En Python 2.7, cuando cargo todos los datos de un archivo de texto de 2.5GB en la memoria para un procesamiento más rápido como este:
>>> f = open('dump.xml','r')
>>> dump = f.read()
Tuve el siguiente error:
Python(62813) malloc: *** mmap(size=140521659486208) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
MemoryError
¿Por qué Python trató de asignar140521659486208
memoria de bytes para2563749237
bytes de datos? ¿Cómo arreglo el código para que cargue todos los bytes?
Tengo alrededor de 3GB de RAM libre. El archivo es un volcado de Wiktionary xml.