如何使用Python从MS Word文档导入文本并按词长设置加粗后重新写入Word文档
在Python中操作MS Word实现文本加粗的解决方案
嗨,你找对方向了!确实有专门的Python模块能帮你直接操作MS Word文档里的格式,python-docx就是最常用的选择——完全能实现你要的按单词长度设置加粗的需求,不像ANSI转义码只能在终端生效。
下面给你一步步拆解实现流程:
1. 先安装python-docx模块
打开终端执行安装命令:
pip install python-docx
2. 核心思路:用Run对象控制文本格式
Word文档里的段落(Paragraph)是由多个Run对象组成的,每个Run可以单独设置字体样式(比如加粗、颜色、字号)。我们可以把原文本拆分后,根据单词长度判断是否需要加粗,然后逐个添加带对应格式的Run到段落里。
3. 完整示例代码
这里我写一个完整的流程:从现有Word文档读取文本,按规则处理后写入新的Word文档:
from docx import Document from docx.shared import Pt def process_text_with_bold(text): # 拆分文本为单词列表 words = text.split() # 创建一个新文档对象 doc = Document() # 添加一个段落 paragraph = doc.add_paragraph() for word in words: # 这里自定义加粗规则,比如单词长度≥5就加粗,你可以根据需求调整 if len(word) >= 5: # 添加加粗的run run = paragraph.add_run(word + " ") run.bold = True run.font.size = Pt(12) else: # 添加普通格式的run run = paragraph.add_run(word + " ") run.font.size = Pt(12) return doc # 读取原Word文档的内容 original_doc = Document("your_original_file.docx") # 提取所有段落的文本(多段的话可以循环处理) original_text = "" for para in original_doc.paragraphs: original_text += para.text + " " # 处理文本并生成新文档 new_doc = process_text_with_bold(original_text) # 保存新文档 new_doc.save("formatted_output.docx")
代码说明
- 你可以修改
len(word) >=5这个条件,换成你需要的单词长度规则,比如你示例里的特殊拆分格式,只要调整判断逻辑即可。 - 如果需要处理带表格、图片的复杂Word内容,python-docx也支持,只需额外处理对应的文档对象。
- 对比你之前用的ANSI转义码:那些是终端专属的控制字符,Word根本无法识别,而python-docx是直接生成Word原生格式,打开文档就能看到真正的加粗效果。
内容的提问来源于stack exchange,提问作者Bouncyknights123




