Seite 1 von 1

XML Daten inkrementell in Datei schreiben

Verfasst: Donnerstag 13. November 2008, 15:27
von astraios
Hallo!

Ich habe ein Projekt, bei dem Ergebnisse in einem minidom Objekt abgelegt werden.
Zum Schluss wird das ganze als XML-Datei gespeichert.
Jetzt ist die Situation folgende, dass die abgelegten Daten mit der Zeit recht viel werden. Wenn ich nun nur zum Schluss das XML File schreiben lasse, laufe ich gefahr, die kompletten Daten zu verlieren, wenn das Programm vorher chrasht.
Wenn ich nun zwischendrin öfters mal die Daten als XML schreiben lasse, ist das wenig performant, weil dann immer die gesamte (recht große Datei) komplett geschrieben werden muss.

Gibt es eine Möglichkeit, nebenbei jeweils nur neu hinzugekommene Daten in die Datei schreiben zu lassen?

Danke schon mal im Voraus für die Antworten :D

Verfasst: Donnerstag 13. November 2008, 16:52
von BlackJack
Nicht wenn da immer gültiges XML in der Datei sein soll. Um Dateien zu erweitern ist XML eben nicht so günstig.

Verfasst: Donnerstag 13. November 2008, 18:07
von Y0Gi
Es kann sinnvoll sein, die Daten bei der langen Laufzeit in eine Datenbank zu speichern und erst am Ende die XML-Datei zu generieren. "Datenbank" muss hierbei kein RDMBS sein, sondern du kannst du im einfachsten Fall die Daten in einem anderen Format z. B. Zeilenweise an eine Klartext-Datei anhängen (s. auch `fileobj.flush()`).