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&nbsp;memoria de bytes para2563749237&nbsp;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.