我想用每个单词的字体样式读取文档文件test.docx
的内容。它包含以下示例段落:
............
这是一个测试文件,粗体和斜体内容。我写这篇稿子是为了测试。我只需要找到样式在Python中读取每个单词时.
.............
我正在使用python-docx阅读它
from docx import Document
filename = "./test.docx"
document = Document(filename)
for para in document.paragraphs:
print(para.text)
但是它正在读取没有字体样式的内容(即粗体不再是粗体,斜体不再是斜体)。
是否有一种方法可以读取每个单词的字体样式?
您需要解决两个主题来解决这个需求:
- 如何在终端打印粗体或斜体文本
如果您的终端支持它(这不是Windows cmd的情况,但它将在PyCharm Python控制台中工作),您可以使用ansi转义码:
class FontStyles:
BOLD = ' 33[1m'
END = ' 33[0m'
ITALIC = 'x1B[3m'
- 如何获取段落字体样式
此信息存储在样式ParagraphStyle
属性的font
属性中。
把它放在一起:
for paragraph in document.paragraphs:
is_bold = paragraph.style.font.bold
is_italic = paragraph.style.font.italic
print(f"{FontStyles.ITALIC if is_italic else ''}{FontStyles.BOLD if is_bold else ''}{FontStyles.END if is_bold or is_italic else ''}")