使用Python 2.7读取docx文件
我正在尝试用以下代码读取一个docx文件:
from docx import Document
doc = Document('test.docx')
但是当我尝试打印内容时,出现了这个:
<docx.api.Document object at 0x02952C70>
我该如何读取文件里的内容呢?
我听说docx格式最近有了变化,所以之前的问题和答案可能不再适用了。
2 个回答
4
这里有关于Document对象结构的信息:
比如,如果你想获取“段落”这个属性:
doc = Document('test.docx')
paragraphs = doc.paragraphs()
希望这能帮到你。
补充:我在python-docx的GitHub仓库找到了这个代码片段,并稍微修改了一下:
document = docx.Document(filename)
docText = '\n\n'.join([
paragraph.text.encode('utf-8') for paragraph in document.paragraphs
])
print docText
join()函数接收一个用UTF-8编码的字符串列表,这些字符串来自于段落属性返回的数组。所以结果看起来会像这样:
paragraph 1
paragraph 2
paragraph 3
看起来这个方法有效,但它不会打印表格、页眉或页脚。
补充:这个链接是关于python-docx所有文档的主索引:
0
其实,你可以不使用 docx
模块来提取Word文件中的信息,使用Python也能做到。Etienne提供了一个解决方案(其实还有很多其他方法),这是一个非常简单的 docx
版本,可能会去掉你看到的那些十六进制数字。不过,就像SebasSBM的回答那样,这个方法对其他功能,比如表格等,可能就不太管用了。
如果这个方法还是不行,我建议你看看这些回答,也许其中有一个对你新的docx格式仍然适用。