You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在python-docx中为修改后的段落设置加粗格式

问题解决方法

失效原因

  • 直接修改段落的text属性会清空该段落内所有带格式的文本块(Run),替换为无格式的纯文本,因此原有加粗属性会丢失
  • 第二段代码中的run变量未声明指向具体的文本块对象,赋值操作无效;格式属性是绑定到单个文本块(Run),而非整个段落对象,直接给未定义的run设置属性不会生效

可用实现代码

from docx import Document

document = Document('filename.docx')
# 替换映射字典,注意替换值需要是字符串类型,添加引号
replace_map = {'XxwordxX': '你要替换的目标文字'}

for para in document.paragraphs:
    # 遍历段落内的所有文本块,仅替换文本内容,保留原有格式
    for run in para.runs:
        for old_str, new_str in replace_map.items():
            if old_str in run.text:
                run.text = run.text.replace(old_str, new_str)

# 若需要主动将指定段落全部设置为加粗,取消注释下方代码即可
# target_para = document.paragraphs[2]
# for run in target_para.runs:
#     run.bold = True

document.save('new.docx')

特殊场景说明

如果需要替换的关键词被拆分到了多个连续的Run中,上述方法无法匹配到关键词,可先读取段落完整文本做替换,再按原有格式重建Run,常规场景下无需额外处理。

内容的提问来源于stack exchange,提问作者RandallCloud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 14:45:04