Python快速优雅的批量修改Word文档样式
本文介绍如何利用Python的python-docx库批量处理Word文档。通过遍历文档的段落和文字块(Run),精准定位包含特定关键词的文本,并统一修改其字体颜色为红色及加粗样式。文章提供了从环境安装、路径配置到完整代码实现的详细步骤,帮助读者掌握高效的办公自动化技巧。
需求描述
当前手头持有若干份财务分析报告的Word文档,具体示例如下:

每一份Word文档内部包含的内容结构如下:

为了便于后续的审阅工作,需要将所有文档中涉及“资金”相关的语句统一设置为红色加粗格式,效果如图所示。

步骤分析和前置知识
为解决上述需求,首先简要回顾相关基础知识。Word文档通常遵循“文档(Document)- 段落(Paragraph)- 文字块(Run)”的三级层级结构:

根据需求反馈,核心任务是对所有包含“资金”关键词的文字块(Run)进行样式调整。
因此,本任务的执行逻辑如下:
1. 创建一个空文件夹(用于存放修改后的财务报告,避免直接覆盖原文件) 2. 使用glob模块获取目标文件夹下的所有Word文档路径 3. 利用docx模块遍历每个Word文档,并提取包含特定关键词的文字块 4. 对提取出的文字块执行样式修改操作
代码实现
首先导入所需的库并设置目标文件夹路径。
from docx import Document
from docx.shared import RGBColor, Pt, Cm
import os
import glob
# 此处更换创建文件夹的路径
mkdir_path = r'C:\Users\xxx\new_dir'
# 此处更换所有文件所在的位置
file_path = r'C:\Users\xxx\'
os和glob模块大家已很熟悉,此处简要介绍docx模块。这是一个非标准库,需在命令行中输入以下命令进行安装:
pip install python-docx
需特别注意,安装时输入的命令为python-docx,但在代码中调用时需使用docx。
实例化具体Word文档的代码如下:
from docx import Document
wordfile = Document(path)
若不指定路径,则默认创建一个新的Word文档,这一点与操作Excel的openpyxl库有所不同,后续有机会再作介绍。
接下来建立文件夹以存放新生成的文件。首先判断文件夹是否存在,若不存在则执行os.mkdir以避免报错。
if not os.path.exists(mkdir_path):
os.mkdir(mkdir_path)
随后遍历Word文档,利用glob模块的通配符功能,代码框架如下:
for file in glob.glob(file_path + '/*.docx'):
pass
基于三级结构,一个文档(Document)包含一个或多个段落(Paragraph),一个段落(Paragraph)包含一个或多个文字块(Run)。综合代码如下:
for file in glob.glob(file_path + '/*.docx'):
docx = Document(file)
for paragraph in docx.paragraphs:
for run in paragraph.runs:
pass
最后针对特定关键词修改样式,在遍历到文字块后进行判断处理。
...
for run in paragraph.runs:
if '资金' in run.text:
run.font.bold = True # 加粗
run.font.color.rgb = RGBColor(255, 0, 255) # 设置字体颜色
# 最后切记保存
docx.save(mkdir_path + '/' + os.path.basename(file))
当然,除修改字体颜色和加粗外,还支持其他多种样式设置。以下列出常用设置供参考:
# 加粗
run.font.bold = True
# 斜体
run.font.italic = True
# 下划线
run.font.underline = True
# 删除线
run.font.strike = True
# 字号
run.font.size = Pt(20)
# 阴影
run.font.shadow = True
# 字体颜色
run.font.color.rgb = RGBColor(255, 0, 255)
至此,整个需求处理完毕。附上完整代码:
from docx import Document
from docx.shared import RGBColor, Pt, Cm
import os
import glob
mkdir_path = r'C:\xxx\new_dir)'
if not os.path.exists(mkdir_path):
os.mkdir(mkdir_path)
keyword = '资金'
file_path = r'C:\Users\xxx'
for file in glob.glob(file_path + '\*.docx'):
docx = Document(file)
for paragraph in docx.paragraphs:
for run in paragraph.runs:
if keyword in run.text:
run.font.bold = True
run.font.color.rgb = RGBColor(255, 0, 0)
docx.save(mkdir_path + '/' + os.path.basename(file))
写在最后
通过本文Python自动化脚本的制作过程,我们再次体会到Python在办公自动化领域的强大能力!若对自动化代码和数据感兴趣,可在后台回复“自动化”获取相关资料。
此外,除调整Word字体颜色外,大多数其他样式调整均可通过Python完成,也可与Excel和PPT结合使用,这些扩展功能留给读者自行开发。
最后,希望大家理解Python办公自动化的核心在于批量操作——解放双手,实现复杂工作的自动化!
以上就是Python快速优雅的批量修改Word文档样式的详细内容,更多关于Python 批量修改Word文档样式的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













