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.