Word-Dokumente einlesen

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

/me: Syntax Highlighting ist schon praktisch, nicht wahr? :wink:
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

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
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Code: Alles auswählen

data = data.replace("foo", "bar")
Stefan
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

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.
Barcellona
User
Beiträge: 74
Registriert: Dienstag 25. Mai 2010, 12:10

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")
Barcellona
User
Beiträge: 74
Registriert: Dienstag 25. Mai 2010, 12:10

Ok, danke!
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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 ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten