14-从.docx文档中取得完整的文本
15.3.2 从.docx文档中取得完整的文本
如果你只关心Word文档中的文本,不关心样式信息,那么可以利用 getText()
函数。它接收一个.docx文档名,并返回其中文本的字符串。打开一个新的文件编辑器窗口,输入以下代码,并将其保存为readDocx.py:
#! python3
import docx
def getText(filename):
doc = docx.Document(filename)
fullText = []
for para in doc.paragraphs:
fullText.append(para.text)
return '\n'.join(fullText)
getText()
函数打开了Word文档,循环遍历 paragraphs
列表中的所有 Paragraph
对象,然后将它们的文本添加到 fullText
列表中。循环结束后, fullText
中的字符串连接在一起,中间以换行符分隔。
readDocx.py程序可以像其他模块一样导入。现在如果你只需要Word文档中的文本,就可以输入以下代码:
>>> import readDocx
>>> print(readDocx.getText('demo.docx'))
Document Title
A plain paragraph with some bold and some italic
Heading, level 1
Intense quote
first item in unordered list
first item in ordered list
也可以调整 getText()
,在返回字符串之前进行修改。例如,要让每一段缩进,就将文件中的 append()
调用替换为:
fullText.append(' ' + para.text)
要在段落之间增加空行,就将 join()
调用代码改成:
return '\n\n'.join(fullText)
可以看到,只需要几行代码就可以写出函数,读取.docx文档,并根据需要返回它的内容字符串。