【发布时间】:2015-02-12 19:29:14
【问题描述】:
我正在尝试使用this 网页上的代码使用 Python 从 Word 文档中提取 XML。
我首先创建了一个名为 test.docx 的测试文档。然后我运行了以下代码:
import zipfile
from lxml import etree
def getXml(docxFilename):
zip = zipfile.ZipFile(open(docxFilename))
xmlContent = zip.read("word/document.xml")
return xmlContent
def getXmlTree(xmlContent):
return etree.fromstring(xmlContent)
testXml = getXml("test.docx")
print(getXmlTree(testXml))
运行此代码会产生错误消息“文件不是 zip 文件”。我做错了什么?
【问题讨论】:
-
哪个版本的 Python?您是否也搜索过“文件不是 zip 文件”并查看了这些问题/答案?
-
我使用的是 Python 3.4。是的,我尝试了谷歌搜索,虽然有很多关于这个错误的讨论,但我没有发现任何关于解压缩 Word 文档的特殊内容。
-
我在 cygwin python 2.7.8 上测试了你的脚本,它运行良好。您可以在 docx 文件上使用“解压缩”实用程序吗?也许它已损坏。
-
尝试以“rb”模式打开文件
-
@patrickmdnet 这听起来很愚蠢,我认为 zipfile.ZipFile 进行了解压缩。如何解压缩文档? @tdelaney 当我尝试添加“rb”模式时,出现错误
ZipFile() requires mode "r", "w", or "a"。当我使用模式“r”时,我得到了和以前一样的错误。但是,当我使用模式“w”或模式“a”时,出现了一个新错误:"There is no item named 'word/document.xml' in the archive"