使用pythondocx检查特定样式

使用pythondocx检查特定样式,python,python-docx,Python,Python Docx,这是我用来打开docx文件并检查是否有粗体文本的代码,但我没有得到任何结果。如果删除If语句,则整个文件将在没有任何格式/样式的情况下打印。您能告诉我如何使用PythonDocx识别粗体或斜体等特定样式的文本吗? 谢谢虽然粗体和强体在渲染时看起来是一样的,但它们使用两种不同的机制。第一种方法直接应用粗体,第二种方法应用可以包含任何其他数量字体特征的字符样式 要识别所有出现的粗体文本,可能需要同时执行这两项操作 但要查找应用了粗体的文本,您可以执行以下操作: from docx import *

这是我用来打开docx文件并检查是否有粗体文本的代码,但我没有得到任何结果。如果删除If语句,则整个文件将在没有任何格式/样式的情况下打印。您能告诉我如何使用PythonDocx识别粗体或斜体等特定样式的文本吗? 谢谢

虽然粗体和强体在渲染时看起来是一样的,但它们使用两种不同的机制。第一种方法直接应用粗体,第二种方法应用可以包含任何其他数量字体特征的字符样式

要识别所有出现的粗体文本,可能需要同时执行这两项操作

但要查找应用了粗体的文本,您可以执行以下操作:

from docx import *
document = Document('ABC.docx')

for paragraph in document.paragraphs:
 for run in paragraph.runs:
  if run.style == 'Strong':
   print run.text

请注意,这可能会遗漏粗体显示的文本,例如显示在整个段落字体格式为粗体的段落中的文本(例如标题1)。但我认为这是您正在寻找的属性。

要检查特定样式,您可以使用或中提供的
名称
属性

例如:

for paragraph in document.paragraphs:
    for run in paragraph.runs:
        if run.bold:
            print run.text

你能告诉我如何识别斜体文字吗?有通用文档吗?还有一个Run.italics属性,其操作类似于.bold。文档在这里有更多内容:@scanny您知道如何检查给定段落的
“列出段落”==段落.style
?或者任何其他样式?好的,我想我只需要在
\u ParagraphStyle对象上使用name属性
,因此它是
'List Paragraph'==paragration.style.name
for paragraph in document.paragraphs:
    if 'List Paragraph' == paragraph.style.name:
        print(paragraph.text)