2008-10-09 79 views
18

是否可以在不使用COM對象的情況下使用Python讀寫Word(2003和2007)文件?
我知道我可以:在Python中讀取/寫入MS Word文件

f = open('c:\file.doc', "w") 
f.write(text) 
f.close() 

但Word將讀爲HTML文件不是本機.doc文件。

回答

7

我想看看IronPython,它本質上可以訪問windows/office API,因爲它運行在.NET運行時。

3

doc(本例中是Word 2003)和docx(Word 2007)是不同的格式,其中後者通常只是xml和圖像文件的存檔。我會想象通過操作這些XML文件的內容來寫入docx文件是非常可能的。但是,我不明白如何在沒有某種類型的COM組件接口的情況下讀取和寫入doc文件。

38

請參閱python-docx,其正式文件可用here

這對我來說工作得很好。

+0

但它支持.doc格式,我試過,但它拋出我ValueError`ValueError:文件'<打開文件'file.doc',模式'r'0x7f29a1b5a6f0>'不是一個Word文件,內容類型是'application/vnd.openxmlformats-officedocument.themeManager + xml` – Shashank 2016-02-26 13:04:23

+0

它是所謂的python-docx不是python-doc,所以不行。 :) – Damian 2016-02-26 17:52:26

6

如果你只讀了什麼,這是simplest使用Linux的soffice命令將其轉換爲文本,然後加載文本蟒蛇: