ich arbeite mit zipfile und entpackte aus einem vorhandenen Zipfile eine Datei, manipuliere diese und schreibe diese mit.write zurück.
Leider habe ich noch das Problem, das alte Datei aus dem Zipfile (bzw. im zipfile), noch im archiv ist. Diese Datei wird allerdings bei write nicht ersetzt (ok so stehts ja in der Api)
Zusätzlich wird das File außerhalb des zipfiles auch noch behalten, was natürlich auch unschön ist.
Wie löse ich dieses writeBack-Problem? Unter http://docs.python.org/library/zipfile.html habe ich leider nichts gefunden was mir das löschen bzw. überschreiben einer Datei im Zipfile ermöglichen würde.
Habe bereits den Gockel laufen lassen, Fehler scheint bekannt aber leider keine Lösung.
Danke für die Hilfe.
Anbei Codeabschnitt, falls relevant
Code: Alles auswählen
ofile.saveFile("outputFile")
ofile.escapeConvert("outputFile")
import zipfile
f = zipfile.ZipFile("outputFile.odt", "a")
f.extract("content.xml")
with open("content.xml") as h:
data = h.read().replace("</office:text>", "%s </office:text>"%odfReturn)
with open("content.xml", "w") as h:
h.write(data)
f.write("content.xml")
f.close()