2017-01-02 123 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非常明智地拒绝为你打开文件,以防止“丢失的变化”,这就是为什么操作系统有文件锁定的原因。