2 回答

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
發(fā)現(xiàn)無(wú)法用Python編程地從zip文件中刪除元素,我最初決定采用“制作新的zip”方法:使用ZipFile模塊從zipfile中刪除文件
但是,盡管我能夠打開生成的ODT文件并從中提取所有文件,但是7Zip抱怨CRC失敗,稱content.xml現(xiàn)在“損壞”。顯然是由于一個(gè)“ content.xml”被另一個(gè)的殘酷替換所致。
最終答案:1)將修改后的DOM結(jié)構(gòu)輸出到同一目錄中的一個(gè)簡(jiǎn)單文件,稱為“ content.xml”:
f = open( file_dir + '\\content.xml', "w" )
print >>f, document_root.toxml()
f.close()
2)當(dāng)以編程方式關(guān)閉ODT文件時(shí),利用7zip CLI:
import subprocess
subprocess.Popen( "7z u temp.odt content.xml", cwd=file_dir, shell=True )

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊
根據(jù)文檔的來源,您可能希望跳過zip文件的混亂,而使用Flat XML OpenDocument Format(我相信它是.fodt擴(kuò)展名),而直接操作XML。這將意味著更大的文件大小,但它們確實(shí)壓縮得很好,當(dāng)您弄亂它們時(shí),始終可以將它們另存為.odt文件。
添加回答
舉報(bào)