2016-11-09 168 views
1

我有一個文件夾「myfolder」,它是在我解壓縮一個odt文件時創建的。我刪除了文件夾中的content.xml。現在我想添加一個名爲「content.xml」的數據文件(這裏的變量「content」是xml樣式的文本)。我試過這個:使用python創建一個新的odt文件

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

我得到一個odt文件,但它已損壞。當我解壓縮時,只有content.xml。模式參數是'a',所以我想它會將content.xml附加到其他文件。

任何人都可以幫忙嗎?

+0

「更好」的含義是什麼?你的代碼是否工作? – 2016-11-09 15:44:12

+0

如果您的變量中已經有了有效的XML內容,那麼就是這樣做的方法。 但是,到這一點可能會非常棘手,這就是PyODF波紋管等第三方模塊可以提供幫助的地方。 – jsbueno

回答

0

您可以嘗試使用軟件包odfpy。

你可以看到一些信息herehere

Odfpy是讀寫OpenDocument的訴1.2文件庫。 的主要焦點是防止程序員創建無效的 文件。如果程序員 添加了一個無效元素,將未知屬性添加到語法中,那麼它會進行檢查以提醒異常, 忘記添加必需的屬性或將文本添加到 不允許的元素。它是在管狀的,所以你可以

安裝它,你可以用PIP安裝它:「你覺得有更好的方式來做到這一點」

pip install odfpy