2017-01-02 147 views
-1

我希望能夠使用python-docx寫入打開的word文檔。然而,這會拋出一個IOError: [Errno 13] Permission denied: 'test.docx',由於過去類似的情況我懷疑這種情況,但是我希望能夠更改文檔而不必關閉並打開需要很長一段時間才能打開的文檔,因爲它相對快速和簡短操作(將參考書目追加到單詞文檔的末尾,即分配)。如何寫入打開的Word文檔

打開和閱讀是完美的,很容易(因此,該訪問被授予),但是,我無法實際保存該文件(與用戶一定不會注意到相同的名稱),因爲這會拋出錯誤。當文件沒有打開時,錯誤消失,但這是不可接受的(關閉並重新打開)。

也許有另一種方法可以用python-docx將文檔保存在word中嗎?一個涉及追加而不是銷燬和重新創建的我認爲會好得多(例如,當用「with」或「read」訪問.txt文件時)

這會好得多能夠以某種方式添加文本到Word文檔中,而它是開放的,從而爲用戶以及更好,更快的體驗。

回答

2

此錯誤是由操作系統來(Windows中,它聽起來像),並且還有它應該。

您要求的操作只能通過控制打開文檔的Word應用程序來實現,這可以通過Visual Basic(即Word宏)來完成。

在這種情況下,使用單獨的程序python-docx時沒有意義的原因是您所做的更改在Word中不可見。它不會自動感知文件的更改並重新加載它。更糟糕的是,當用戶保存他們的文檔時,您所做的更改將會丟失; Word在內存中的文檔會覆蓋您所做的更改版本。

這就是爲什麼Windows非常明智地拒絕爲你打開文件,以防止「丟失的變化」,這就是爲什麼操作系統有文件鎖定的原因。