当前位置:嗨网首页>书籍在线阅读

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文档,并根据需要返回它的内容字符串。