2016-11-09 5 views
1

Ich habe einen Ordner "myfolder", der erstellt wurde, als ich eine odt-Datei entpackt hatte. Ich habe die content.xml im Ordner gelöscht. Jetzt möchte ich eine Datei namens "content.xml" mit Daten darin hinzufügen (hier in der Variable "content" ist der xml-styled Text). Ich habe es versucht:Erstelle eine neue ODT-Datei mit Python

with zipfile.ZipFile('myfolder', mode='a', compression=zipfile.ZIP_DEFLATED) as zf: 
     zf.writestr('content.xml', content) 

Ich bekomme eine ODT-Datei, aber es ist beschädigt. wenn ich es entzippe, ist nur die content.xml drin. Der Modus-Parameter ist "a", also werde ich die content.xml an die anderen Dateien anhängen.

Kann jemand helfen?

+0

Mit welcher Bedeutung von "besser"? Funktioniert dein Code? –

+0

Das ist der Weg, wenn Sie bereits den gültigen XML-Inhalt in Ihrer Variablen haben. Allerdings kann es schwierig sein, zu diesem Punkt zu kommen, und hier können Module von Drittanbietern wie PyODF helfen. – jsbueno

Antwort

0

Sie können versuchen, das Paket odfpy zu verwenden.

können Sie einige Informationen siehe here und here

Odfpy eine Bibliothek zu lesen und OpenDocument- v zu schreiben. 1.2 Dateien. Der Hauptschwerpunkt wurde verwendet, um zu verhindern, dass der Programmierer ungültige Dokumente erstellt. Es hat Prüfungen, die eine Ausnahme auslösen, wenn der Programmierer ein ungültiges Element hinzufügt, ein der Grammatik unbekanntes Attribut hinzufügt, vergisst, ein erforderliches Attribut hinzuzufügen, oder Text zu einem Element hinzufügt, das es nicht erlaubt. Es ist auf pipy, so können Sie es installieren mit

Sie es mit pip installieren können: ‚Glauben Sie, dass es einen besseren Weg, das zu tun‘

pip install odfpy 
Verwandte Themen