Python 读取 Word 文档操作
作者:盼小辉丶
前言
Word
文档 (.docx
) 是另一种主要用于存储文本的常见文档。它们通常由 Microsoft Office
创建和编辑,但也可以使用其他工具生成兼容文件。它们通常是共享可编辑文件的最常见格式,同时在分发文档时也非常常见。
Python 读取 Word 文档
安装 python-docx库
在本节中,我们将学习如何使用 Python
从 Word
文档中提取文本信息。我们主要使用 python-docx
库来读取和处理 Word
文档,其安装方法与其它第三方库完全相同:
$ pip install python-docx
首先,导入 python-docx
库:
>>> import docx
打开 document_1.docx
文件:
>>> doc = docx.Document('document_1.docx')
检查存储在 core_properties
中的元数据属性,需要访问 core_properties
属性。这些属性是为 Word
定义的文档元数据属性,例如作者或创建日期。但并非所有文档都具有这些元数据信息,因为许多生成 Word
文档的工具不一定会填充这些属性:
>>> doc.core_properties.title 'Research Overview of Adversarial Attacks and Defenses on Graphs' >>> doc.core_properties.keywords 'Abstract' >>> doc.core_properties.modified datetime.datetime(2020, 8, 1, 3, 11)
Word
文档中最重要的特点是数据以段落(而不是页)的形式结构化。字体大小、段落缩进和其他因素都可能会使页数发生变化。检查段落数:
>>> len(doc.paragraphs) 28
浏览段落以检测包含文本的段落,大多数段落通常是空的,或者只包含换行符、制表符或其他空白字符,检查段落时我们通常跳过这些空段落:
>>> for index, paragraph in enumerate(doc.paragraphs): ... if paragraph.text: ... print(index, paragraph.text)= ... 0 图对抗攻防综述 1 摘 要: 3 关键字: 5 Research Overview of Adversarial Attacks and Defenses on Graphs 6 Abstract 7 Deep neural networks (DNNs) have been widely applied to various applications, including image classification, ... 8 ... ... 27 参考文献
可以利用 paragraphs
属性获取文档段落列表并提取原始格式的文本,这些文本不包括样式信息,通常是自动处理数据时最常用的属性。获取第 5
段和第 6
段的文本,分别对应第一页的标题和副标题:
>>> doc.paragraphs[5].text 'Research Overview of Adversarial Attacks and Defenses on Graphs' >>> doc.paragraphs[6].text 'Abstract '
每个段落都有一个 runs
属性,这是具有不同样式属性的文本分割列表。检查不同文本段落是否为粗体或斜体:
>>> doc.paragraphs[5].runs[0].bold True >>> doc.paragraphs[5].runs[0].italic >>> doc.paragraphs[6].runs[0].bold >>> doc.paragraphs[6].runs[0].italic True
在示例 Word
文档中,大多数段落只有一个 run
(即每个段落使用相同的样式),但我们在第 7
段中文本具有许多不同的样式。例如,Deep neural networks
使用粗体样式,DNNs
使用斜体样式:
>>> run_0 = doc.paragraphs[7].runs[0] >>> run_0.text 'Deep neural networks' >>> run_0.bold True >>> run_13 = doc.paragraphs[7].runs[13] >>> run_13.text 'DNNs' >>> run_13.italic True
到此这篇关于Python 读取 Word 文档操作的文章就介绍到这了,更多相关Python 读取 Word 文档内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!