使用 docx 库打开有密码的 Word 文档

Ree*_*eza 3 ms-word python-2.7

我正在尝试打开一个有密码的 word 文档。

我正在使用 docx 包 - 有点旧

from docx import opendocx, getdocumenttext
Run Code Online (Sandbox Code Playgroud)

并进一步

 document = opendocx(filename)
Run Code Online (Sandbox Code Playgroud)

我想知道 opendocx 上是否有允许它打开受密码保护的 Word 文档的选项——我知道密码。我在这里检查了 github 存储库:https : //github.com/mikemaccana/python-docx但没有看到选项。我试图避免重写代码以使用更新的包,但这可能是不可避免的。

Gro*_*ify 5

python-docx目前不支持密码。我也没有在代码中找到它,但可以肯定的是,我在python-docx 邮件列表中询问并收到以下回复

抱歉,没有。至少它没有内置功能。我不确定这一切如何与 Word 一起使用,可能值得研究一下。

如果它使用 Zip 存档的密码保护,您可以打开 .docx 文件(这是顶级的 Zip),然后做一些我肯定会输入的操作。最坏的情况是,您可以将其另存为另一个 zip 文件,而无需密码并使用它。当然,临时 zip 可以是 StringIO 内存文件。

如果他们使用自己的加密,我预计会更难:)

Docx 使用自己的加密,而不是 zip 加密。这样只需要加密内部内容。此处提供了有关解密 docx 文件的一些信息:

如果您不想更改代码,可以使用的一种方法是派生 docx 包并添加代码来解密 docx 文件。如果您有另一个程序来解密文档,您也可以进行解密。