如何写入打开的Word文档

时间:2017-01-02 08:16:51

标签: python ms-word python-docx

我希望能够使用python-docx写入一个打开的word文档。然而,这引发了一个IOError: [Errno 13] Permission denied: 'test.docx',由于过去类似的情况,我有点怀疑,但我希望能够改变文档,而不必关闭并打开它,这需要很长一段时间,相对快速和短暂的操作(将参考书目附加到单词doc的末尾即赋值)。

打开和阅读非常简单(因此授予访问权限),但是,我无法实际保存文件(当然用户名必须注意),因为这会引发错误。如果文件未在单词中打开,则错误消失,但这是不可接受的(关闭并重新打开)。

也许还有另一种方法可以用python-docx在word中保存文档?一个涉及追加而不是破坏和重新创建我认为会更好(例如当一个人使用“with”或“read”访问.txt文件时。

能够以某种方式在文档打开时将文本添加到word文档会更好,从而为用户带来更好,更快的体验。

1 个答案:

答案 0 :(得分:2)

此错误来自操作系统(Windows听起来像),它应该是。

您要求的操作只有通过控制文档打开的Word应用程序才有意义。这可以通过Visual Basic完成,即Word宏。

在这种情况下使用单独的程序python-docx时没有意义的原因是你所做的更改在Word中不可见。它不会自动检测文件的更改并重新加载它。更糟糕的是,当用户保存文档时,您所做的更改将会丢失; Word在内存中的文档将覆盖您所做的更改版本。

这就是为什么Windows拒绝为您打开文件,防止"丢失更改"这就是为什么操作系统有文件锁定的原因。