Python carrega 2 GB de arquivo de texto na memória

No Python 2.7, quando eu carrego todos os dados de um arquivo de texto de 2,5 GB na memória para um processamento mais rápido como este:

>>> f = open('dump.xml','r')
>>> dump = f.read()

Eu tenho o seguinte erro:

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 que o Python tentou alocar140521659486208 bytes de memória para2563749237 bytes de dados? Como corrijo o código para que ele carregue todos os bytes?

Estou tendo cerca de 3 GB de RAM livre. O arquivo é um dump xml do Wiktionary.

questionAnswers(2)

yourAnswerToTheQuestion