我希望能够使用 python-docx 写入打开的 Word 文档。然而,这引发了一个
IOError: [Errno 13] Permission denied: 'test.docx'
,由于过去的类似情况,我对此有所怀疑,但我希望能够更改文档,而不必关闭和打开它,这需要花费很长时间,相对较快和简短的操作(将参考书目附加到单词文档的末尾,即作业)。
打开和阅读非常简单(因此授予访问权限),但是,我无法实际保存文件(当然名称相同,用户一定不会注意到),因为这会引发错误。当文件不是在word中打开时,错误就会消失,但这是不可接受的(不断关闭并重新打开)。
也许还有另一种方法可以用 python-docx 保存 word 文档?我认为涉及追加而不是销毁和重新创建的方法会好得多(例如当使用“with”或“read”访问 .txt 文件时。
如果能够在 Word 文档打开时以某种方式将文本添加到其中,这会更好,从而为用户带来更好、更快的体验。
这个错误来自操作系统(听起来像Windows),而且应该是这样。
您要求的操作只有通过控制打开文档的 Word 应用程序才有意义。这可以通过 Visual Basic(即 Word 宏)来完成。
使用单独的程序(本例中为 python-docx)没有意义的原因是您所做的更改在 Word 中不可见。它不会自动检测文件的更改并重新加载它。更糟糕的是,当用户保存文档时,您所做的更改将会丢失; Word 内存中的文档将覆盖您所做的更改版本。
这就是为什么 Windows 拒绝为您打开文件以防止“更改丢失”是非常明智的,这也是操作系统具有文件锁定功能的原因。