让我们尝试使用 python-docx 模块。从 http://nostarch.com/automatestuff/下载
demo.docx,并将它保存在当前工作目录中。然后在交互式环境中输入以下代码:
>>> import docx
➊ >>> doc = docx.Document('demo.docx')
➋ >>> len(doc.paragraphs)
7
➌ >>> doc.paragraphs[0].text
'Document Title'
➍ >>> doc.paragraphs[1].text
'A plain paragraph with some bold and some italic'
➎ >>> len(doc.paragraphs[1].runs)
4
➏ >>> doc.paragraphs[1].runs[0].text
'A plain paragraph with some '
➐ >>> doc.paragraphs[1].runs[1].text
'bold'
➑ >>> doc.paragraphs[1].runs[2].text
' and some '
➒ >>> doc.paragraphs[1].runs[3].text
'italic'
在➊行,我们在Python 中打开了一个.docx 文件,调用docx.Document(),传入文件名demo.docx。这将返回一个 Document 对象,它有
paragraphs 属性,是 Paragraph对象的列表。如果我们对 doc.paragraphs 调用 len(),将返回 7。这告诉我们,该文档有 7 个Paragraph
对象➋。每个 Paragraph 对象都有一个text 属性,包含该段中文本的字符串(没有样式信息)。这里,第一个 text
属性包含'DocumentTitle'➌,第二个包含 'A plain paragraph with some bold and some
italic'➍。
每个 Paragraph 对象也有一个 runs 属性,它是 Run 对象的列表。Run 对象也有一个 text 属性,包含那个延续中的文本。我们看看第二个 Paragraph 对象中的
text属性,'A plain paragraph with some bold and some italic'。对这个Paragraph 对象调用len(),结果告诉我们有 4 个Run
对象➎。第一个对象包含'A plain paragraph with some '➏。然后,文本变为粗体样式,所以’bold’开始了一个新的 Run
对象➐。在这之后,文本又回到了非粗体的样式,这导致了第三个 Run 对象,' and some
'➑。最后,第四个对象包含'italic',是斜体样式➒。
有了 python-docx,Python 程序就能从.docx 文件中读取文本,像其他的字符串值一样使用它。