You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用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

火山引擎 最新活动