word内容使用python替换
拥有一个固定的word文件,类似模板
比如写一个测试计划,大多数内容都是通用,只需要改改软件名称,人员等等,数量多起来的情况下就可以使用代码
# 导入 Document 类,用于处理 Word 文档
from docx import Document
# 导入 re 模块,用于进行正则表达式操作
import re# 定义一个函数,用于替换 Word 文档中 {{}} 包裹的参数
def replace_parameters_in_docx(file_path, parameters):# 打开指定路径的 Word 文档doc = Document(file_path)# 开始替换段落中的参数# 遍历文档中的每一个段落for paragraph in doc.paragraphs:# 遍历段落中的每一个运行对象(文本块)for run in paragraph.runs:# 获取当前运行对象的文本内容text = run.text# 遍历参数字典,其中 param 是参数名,value 是参数值for param, value in parameters.items():# 编译正则表达式,用于匹配 {{param}} 格式的字符串pattern = re.compile(rf'{{{{{param}}}}}')# 使用正则表达式将匹配到的参数替换为对应的值text = pattern.sub(str(value), text)# 将替换后的文本重新赋值给当前运行对象run.text = text# 开始替换页眉中的参数# 遍历文档的每一个节(文档可能包含多个节)for section in doc.sections:# 遍历当前节的页眉中的每一个段落for header in section.header.paragraphs:# 遍历页眉段落中的每一个运行对象for run in header.runs:# 获取当前运行对象的文本内容text = run.text# 遍历参数字典,进行参数替换for param, value in parameters.items():# 编译正则表达式,用于匹配 {{param}} 格式的字符串pattern = re.compile(rf'{{{{{param}}}}}')# 使用正则表达式将匹配到的参数替换为对应的值text = pattern.sub(str(value), text)# 将替换后的文本重新赋值给当前运行对象run.text = text# 开始替换页脚中的参数# 遍历文档的每一个节for section in doc.sections:# 遍历当前节的页脚中的每一个段落for footer in section.footer.paragraphs:# 遍历页脚段落中的每一个运行对象for run in footer.runs:# 获取当前运行对象的文本内容text = run.text# 遍历参数字典,进行参数替换for param, value in parameters.items():# 编译正则表达式,用于匹配 {{param}} 格式的字符串pattern = re.compile(rf'{{{{{param}}}}}')# 使用正则表达式将匹配到的参数替换为对应的值text = pattern.sub(str(value), text)# 将替换后的文本重新赋值给当前运行对象run.text = text# 开始替换表格中的参数# 遍历文档中的每一个表格for table in doc.tables:# 遍历表格中的每一行for row in table.rows:# 遍历行中的每一个单元格for cell in row.cells:# 遍历单元格中的每一个段落for paragraph in cell.paragraphs:# 遍历段落中的每一个运行对象for run in paragraph.runs:# 获取当前运行对象的文本内容text = run.text# 遍历参数字典,进行参数替换for param, value in parameters.items():# 编译正则表达式,用于匹配 {{param}} 格式的字符串pattern = re.compile(rf'{{{{{param}}}}}')# 使用正则表达式将匹配到的参数替换为对应的值text = pattern.sub(str(value), text)# 将替换后的文本重新赋值给当前运行对象run.text = text# 保存修改后的文档# 定义输出文件的名称output_file = 'output.docx'# 将修改后的文档保存为指定名称的文件doc.save(output_file)# 返回保存后的文件路径return output_file# 程序入口
if __name__ == "__main__":# 定义要处理的 Word 文档的路径file_path = 'your_test_plan.docx'# 定义要替换的参数和对应的值,存储在字典中parameters = {'param1': 'value1','param2': 'value2'}# 调用替换函数,进行参数替换,并获取替换后的文件路径output_file = replace_parameters_in_docx(file_path, parameters)# 打印替换完成的提示信息,包含保存后的文件路径print(f"替换完成,结果保存到 {output_file}")