Python lädt 2 GB Textdatei in den Speicher

In Python 2.7, wenn ich alle Daten aus einer Textdatei mit 2,5 GB in den Speicher lade, um sie schneller zu verarbeiten:

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

Ich habe folgende Fehlermeldung erhalten:

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

Warum hat Python versucht, zuzuweisen140521659486208 Bytes Speicher für2563749237 Bytes Daten? Wie kann ich den Code so korrigieren, dass alle Bytes geladen werden?

Ich habe ungefähr 3GB RAM frei. Die Datei ist ein Wiktionary-XML-Dump.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage