我使用 Python 检测 docx 文件中的所有斜体字体。问题是:没有找到所有斜体字体,只是找到其中的一些字体。例如,在 bebe.docx 中,我有接下来的 4 行,全部都有斜体字体。泰晤士新罗马字 (13)。
Bebe. Bebe este acasa maine. - Bebe. - The Little Mermaid sighed and looked sadly at her fish tail.
这是要检查的简单 Python 代码:
from docx import Document for para in Document('bebe.docx').paragraphs: for run in para.runs: print(f"Text: {run.text}, Bold: {run.bold}, Italic: {run.italic}")
尽管在 .docx 中它们是斜体字体,但它们都不能被识别为斜体。然而,粗体字体的识别度非常好。看看 Python 发现了什么:
Text: Bebe, Bold: None, Italic: None Text: ., Bold: None, Italic: None Text: Bebe, Bold: True, Italic: None Text: este acasa maine., Bold: None, Italic: None Text: - Bebe, Bold: None, Italic: None Text: ., Bold: None, Italic: None Text: - The Little Mermaid sighed and looked sadly at her fish tail., Bold: None, Italic: None
有些人似乎让代码正常工作,它检测到斜体。为什么它没有检测到我?
根据你提供的信息,你的代码看起来应该可以识别斜体字体,因为你使用了 run.italic 来检查字体是否为斜体。但是,根据你的代码输出,似乎没有检测到斜体。
run.italic
这个问题可能与不同的字体或文档设置有关。有时,如果文档中使用的斜体字体与 Python-docx 库的字体匹配,识别斜体可能会更容易。另外,字体的具体设置也可能影响识别。
以下是一些可能有助于解决问题的步骤:
如果你仍然遇到问题,可以考虑使用其他方法来检测斜体文本,例如使用正则表达式来检测文本是否被包含在 <i> 或 <em> 标签中(如果文档是 HTML 格式),或者使用其他文本处理库来处理文档。这些方法可能会更灵活,但需要根据文档的具体格式和内容进行适当的调整。
<i>
<em>