Hallo,
ich suche eine Möglichkeit mit Python eine einfache Tabelle zu erstellen (Format = xml), die dann mit Excel geöffnet werden kann und dabei noch "sauber" aussieht (keine Zeilen, Spalten verrutscht etc.. )
Zur Zeit habe ich einen String, erweitere diesen Zeile für Zeile manuell und speichere ihn dann als .xml ab. Das funktioniert auch einigermaßen...
Leider ist das 1. sehr aufwendig und 2. sieht die Tabelle in Excel nicht gerade ordentlich aus.
Hätte da jemand einen Rat für mich?
xml-Tabelle mit Python erstellen
Das sind zwei getrennte Probleme.
Erstens: wie muss das XML aussehen? Ich habe kein Excel, insofern kann ich das nicht nachpruefen. Wie sieht denn das XML aus?
Zweitens: wie generiert man XML. Da helfen Bibliotheken wie lxml, oder Template-Engines wie zB Genshi.
Erstens: wie muss das XML aussehen? Ich habe kein Excel, insofern kann ich das nicht nachpruefen. Wie sieht denn das XML aus?
Zweitens: wie generiert man XML. Da helfen Bibliotheken wie lxml, oder Template-Engines wie zB Genshi.
-
- User
- Beiträge: 7
- Registriert: Freitag 27. Mai 2011, 20:43
Stimmt. Das Excel-Problem können wir erst einmal hinten anstellen.
Ich erstelle das XML-File so:
file = open("c:/test.xml", "w")
x = "<root> "
x = x + "\n\t<daten> etc.. </daten>"
x = x + "\n\t</root>" ....
file.write(x)
file.close()
Wie gesagt, sehr umständlich
Ich erstelle das XML-File so:
file = open("c:/test.xml", "w")
x = "<root> "
x = x + "\n\t<daten> etc.. </daten>"
x = x + "\n\t</root>" ....
file.write(x)
file.close()
Wie gesagt, sehr umständlich
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Dir wurde ja die Lösung dafür schon genannthotzenplotz hat geschrieben: Wie gesagt, sehr umständlich
Dateien solltest Du übrigens so öffnen:
Code: Alles auswählen
with open(...) as handler:
# handler ist hier file-object
Strings sollte man tunlichst nicht mit "+" zusammenbauen, sondern sich die Teilkomponenten idealerweise in einem Iterable merken und dann per `"".join()` zusammenbauen:
Code: Alles auswählen
foo = ["Hallo", "Welt"]
"".join(foo)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
-
- User
- Beiträge: 7
- Registriert: Freitag 27. Mai 2011, 20:43
Danke für die Tipps!
Dann werde ich mal über lxml und Genshi informieren.
Dann werde ich mal über lxml und Genshi informieren.
-
- User
- Beiträge: 7
- Registriert: Freitag 27. Mai 2011, 20:43
Das hat alles super funktioniert! Danke nochmals.
Ich habe aber noch eine Frage:
Wenn ich das XML-File abspeichern möchte, benutze ich den Befehl:
tree = etree.ElementTree(root)
tree.write("IchbineineXMLDatei.xml")
Wie kann ich den Pfad angeben, wo die Datei gespeichert werden soll?
So wird sie immer im Python-Verzeichnis erstellt.
Ich habe aber noch eine Frage:
Wenn ich das XML-File abspeichern möchte, benutze ich den Befehl:
tree = etree.ElementTree(root)
tree.write("IchbineineXMLDatei.xml")
Wie kann ich den Pfad angeben, wo die Datei gespeichert werden soll?
So wird sie immer im Python-Verzeichnis erstellt.
hotzenplotz hat geschrieben:tree.write("IchbineineXMLDatei.xml")
Wie kann ich den Pfad angeben, wo die Datei gespeichert werden soll?
Code: Alles auswählen
tree.write("/ich/bin/der/pfad/IchbineineXMLDatei.xml")
-
- User
- Beiträge: 7
- Registriert: Freitag 27. Mai 2011, 20:43
Da hätte ich auch selber drauf kommen können
Danke!
Danke!
Bzgl. des Verzeichisses ist oft auch "os.path.join()" ganz brauchbar.
Gut, wenn Du so zurechtkommst. Ich persönlich würde vielleicht Excel über win32com direkt ansprechen, und dort die Daten eintragen. Finde ich meistens eleganter als eine externe Datei zu öffnen.
Es sei denn, Du brauchst die xml-Datei noch für andere Zwecke (obwohl Excel die wohl auch speichern könnte).
Gruß
Gut, wenn Du so zurechtkommst. Ich persönlich würde vielleicht Excel über win32com direkt ansprechen, und dort die Daten eintragen. Finde ich meistens eleganter als eine externe Datei zu öffnen.
Es sei denn, Du brauchst die xml-Datei noch für andere Zwecke (obwohl Excel die wohl auch speichern könnte).
Gruß