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.

Respuestas a la pregunta(2)

Su respuesta a la pregunta