Seite 1 von 2

Re: Word-Dokumente einlesen

Verfasst: Dienstag 31. August 2010, 19:37
von derdon
/me: Syntax Highlighting ist schon praktisch, nicht wahr? :wink:

Re: Word-Dokumente einlesen

Verfasst: Dienstag 31. August 2010, 21:39
von /me
Hyperion hat geschrieben:Wobei man da das lxml-Modul nutzen möchte ;-)
Ja, natürlich möchte man das. Aber nicht hier im Beispiel. :P

Re: Word-Dokumente einlesen

Verfasst: Mittwoch 1. September 2010, 09:39
von sma

Code: Alles auswählen

data = data.replace("foo", "bar")
Stefan

Re: Word-Dokumente einlesen

Verfasst: Donnerstag 2. September 2010, 10:29
von /me
sma hat geschrieben:

Code: Alles auswählen

data = data.replace("foo", "bar")
Du hast natürlich recht. Code zu schreiben ohne zu testen führt gerne zu Syntax- oder Logikfehlern.

Re: Word-Dokumente einlesen

Verfasst: Donnerstag 2. September 2010, 15:42
von Barcellona
Vielen Dank für das Beispiel! :D

Klappt wunderbar, verstehe nur nicht alles im Code.

Vielleicht kann mir jemand kurz noch erklären, was an den kommentierten Stellen passiert, wäre sehr nett.
Danke!

Code: Alles auswählen

import zipfile

def read_odt(path):
    f = zipfile.ZipFile(path, "a")  # wieso "a"? a=append, oder?
    f.extract("content.xml")
    
    with open("content.xml") as c: # ist content.xml nun ausserhalb des odt-Dokumentes verfügbar? wegen extract?
        data = c.read() 

    data=data.replace("test", "changed") 
                
    with open("content.xml", "w") as c:
        c.write(data) 

     
    f.write("content.xml")
    f.close()
    
read_odt("test.odt")

Re: Word-Dokumente einlesen

Verfasst: Donnerstag 2. September 2010, 15:51
von cofi

Re: Word-Dokumente einlesen

Verfasst: Donnerstag 2. September 2010, 16:30
von Barcellona
Ok, danke!

Re: Word-Dokumente einlesen

Verfasst: Donnerstag 2. September 2010, 17:23
von Hyperion
Barcellona hat geschrieben:Vielen Dank für das Beispiel! :D

Klappt wunderbar, verstehe nur nicht alles im Code.
Du willst Dich in diesem Zusammenhang doch dringend mit einem XML-Parser auseinandersetzen! ;-) Ich hatte Dir ja lxml genannt; das Modul ist zwar nicht in der Standard-Lib bietet aber einige hilfreiche Sachen, die der reine ElementTree-Parser aus der Standard-Lib nicht kann. Letzterer wäre aber imho das "Minimum", was man hier einsetzen sollte.

Solche stumpfes "Suchen & Ersetzen" wird nur bei kleinsten Dingen sinnvoll anzuwenden sein - und dafür könnte man dann die Benutzung von ODT in Frage stellen ;-)