Ich habe eine sehr große XML-Datei (20 GB um genau zu sein, und ja, ich brauche alles). Wenn ich versuche, die Datei zu laden, ich diese Fehlermeldung:Laden von riesigen XML-Dateien und Umgang mit MemoryError
Python(23358) malloc: *** mmap(size=140736680968192) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
Traceback (most recent call last):
File "file.py", line 5, in <module>
code = xml.read()
MemoryError
Dies ist der aktuelle Code, den ich habe, die XML-Datei zu lesen:
from bs4 import BeautifulSoup
xml = open('pages_full.xml', 'r')
code = xml.read()
xml.close()
soup = BeautifulSoup(code)
Nun, wie würde ich mich über die Beseitigung diesen Fehler und in der Lage sein, weiter an dem Skript zu arbeiten. Ich würde versuchen, die Datei in separate Dateien aufzuteilen, aber da ich nicht weiß, wie sich das auf BeautifulSoup und die XML-Daten auswirken würde, würde ich das lieber nicht tun.
(Die XML-Daten sind ein Datenbank-Dump aus einem Wiki ich freiwillig, es unter Verwendung von Daten aus verschiedenen Zeitperioden zu importieren, die direkten Informationen aus vielen Seiten mit)
Haben Sie 20 GB RAM? Wenn nicht, auch wenn du es zur Arbeit bringen kannst, wird es unerträglich langsam sein, wenn es ein- und austauscht. Es könnte einen Weg für Sie geben, nur Stücke auf einmal mit etwas wie lxml zu bearbeiten. – Dougal