PyXML vs ElementTree

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
tumbili
User
Beiträge: 27
Registriert: Donnerstag 31. Mai 2007, 14:38

Huhu :)

Ich möchte eine Baumstruktur aus meinem Programm sichern und laden können und habe dabei an eine XML-Datei gedacht. Nun habe ich bei meiner Suche zwei XML-Parser gefunden. PyXML und ElementTree. Gibt es irgendwo einen Vergleich oder könnt ihr mir kurz die Vor-/Nachteile beschreiben?

Ich denke die xml datei wird maximal 500kb groß und hat ca 4-5 Ebenen.
Soweit ich weiß ließt ElementTree die Datei immer komplett ein, und schreibt diese auch komplett. Bei PyXML gibt es mehrere Möglichkeiten oder? Sind 500kb für diese Methode schon zuviel?
Ich möchte allerdings auch Daten in der Mitte der Datei ändern bzw hinzufügen können. Da bleibt dann wohl keine andere Methode übrig oder sehe ich das falsch?

Danke schonmal für eure Hilfe :)
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

ElementTree hat ein sehr schönes Interface und damit kannst du auch den Baum an jeder Stelle erweitern.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

tumbili hat geschrieben:Nun habe ich bei meiner Suche zwei XML-Parser gefunden. PyXML und ElementTree.
Dann schau mal in das modul ``xml``, dort findest du sogar Expat und minidom. Du kannst dir auch eigene Parser schrieben - macht aber keinen Spaß.

Mit den 500 kB sollte keiner der Methoden ein Problem haben. Am angenehmsten ist es sicherlich ETree zu nutzen - ab Python 2.5 ist auch das schon in der Stdlib.
Zuletzt geändert von Leonidas am Donnerstag 31. Mai 2007, 22:44, insgesamt 1-mal geändert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
tumbili
User
Beiträge: 27
Registriert: Donnerstag 31. Mai 2007, 14:38

ok danke dann werd ich mir elementtree downlaoden :)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

tumbili hat geschrieben:ok danke dann werd ich mir elementtree downlaoden :)
Hast du Python 2.5? Wenn ja, dann brauchst du das gar nicht zu tun. Wenn du nicht Python 2.5 hast, solltest du überlegen, darauf umzusteigen, denn dort sind einige Module in die Stdlib gekommen die ganz praktisch sind.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
tumbili
User
Beiträge: 27
Registriert: Donnerstag 31. Mai 2007, 14:38

Ich habe im Moment 2.4 installiert, weil ich gelesen habe dass pyInstaller noch nicht mit 2.5 funktioniert (habe es allerdings noch nicht getestet). Ist das richtig? Ich muss auf jeden fall mein Programm als exe ausliefern (wie viele dlls dann noch im ordner liegen ist egal ;) ). Es wäre viel zu umständlich auf jedem Rechner python, wxpython, etc zu installieren.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

tumbili hat geschrieben:Ich habe im Moment 2.4 installiert, weil ich gelesen habe dass pyInstaller noch nicht mit 2.5 funktioniert (habe es allerdings noch nicht getestet). Ist das richtig?
Nein. Auf der PyInstaller-Homepage steht: Multiversion: works under any version of Python since 1.5.. Außerdem funktionieren ja py2exe und cx_Freeze auch.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
tumbili
User
Beiträge: 27
Registriert: Donnerstag 31. Mai 2007, 14:38

unten steht aber:

"Requirements

PyInstaller works with any version of Python since 1.5 and up to 2.4. "

Aber wenn die anderen beiden Tools mit 2.5 funktionieren werd ich nochmal updaten ;)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

tumbili hat geschrieben:PyInstaller works with any version of Python since 1.5 and up to 2.4.
Ich denke das liegt einfach daran, dass seit Python 2.4 keiner Zeit gefunden hat, das zu aktualisieren. In der Regel ist Python sehr kompatibel, auf dem aktuellen Python läuft teilweise auch noch "uralter" Quellcode.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten