用python2.7读取docx

时间:2014-07-23 03:26:55

标签: python

我尝试使用以下代码读取docx文件:

from docx import Document
doc = Document('test.docx')

但是当我尝试打印时,我明白了:

<docx.api.Document object at 0x02952C70>

如何阅读文件内的内容?

我读到docx最近发生了变化,旧的问题/答案不再适用了。

2 个答案:

答案 0 :(得分:4)

在此处查看Document对象的结构:

Source code for docx.api

例如,如果您想获取属性&#34;段落&#34;:

doc = Document('test.docx')
paragraphs = doc.paragraphs()

我希望这会有所帮助。

编辑:我在python-docx's gitHub repository找到了这个片段,并在此编辑了一下:

document = docx.Document(filename)
docText = '\n\n'.join([
    paragraph.text.encode('utf-8') for paragraph in document.paragraphs
])
print docText

join()函数从paragraph属性返回的数组中的段落接收以UTF-8编码的字符串列表。结果如下:

paragraph 1

paragraph 2

paragraph 3

看起来这样可行,但它不会打印表格,页眉或页脚。

编辑:此链接是有关python-docx的所有文档的主要索引:

python-docx 0.7.4 documentation

答案 1 :(得分:0)

可以不使用docx模块使用Python从Word文件中提取信息。 One solution, (there are many), from etiennedocx的一个非常基本的版本,可能会删除您获得的十六进制数字。但是,就像SebasSBM的回答一样,它不适用于其他功能,例如表等。

如果仍然无效,我会建议these answers;也许其中一个仍然与您的新docx格式相关。