读取docx文件,识别和存储斜体文本

Reading docx files, recognizing and storing italicized text

我应该如何使用 Python 读取 .docx 文件并能够识别斜体文本并将其存储为字符串?

我查看了 docx python 包,但我看到的只是写入 .docx 文件的功能。

感谢提前的帮助

最好的办法是解压 docx,这将创建一个名为 word 的目录。在该目录中是 document.xml,从那里您需要学习 xml 结构和关键字才能阅读斜体文本。完成后,您所要做的就是从 xml 文件中提取文本字符串。

这是我的示例文档 TestDocument.docx 的样子。

注意:单词 "Italic" 是斜体,但 "Emphasis" 使用样式,强调。

如果安装python-docx模块。这是一个相当简单的练习。

>>> from docx import Document
>>> document = Document('TestDocument.docx')
>>> for p in document.paragraphs:
...     for run in p.runs:
...             print run.text, run.italic, run.bold
... 
Test Document None None
Italics True None
Emp None None
hasis None None
>>> [[run.text for run in p.runs if run.italic] for p in document.paragraphs]
[[], ['Italics'], []]

Run.italic属性捕获文本是否被格式化为斜体,但它不知道文本块是否具有以斜体呈现的样式,但可以通过检查[=28来检测=](如果您知道文档中的哪些样式以斜体呈现。

>>> [[run.text for run in p.runs if run.style.name=='Emphasis'] for p in document.paragraphs]
[[], [], ['Emp', 'hasis']]