使用场景:适合比较长的文档,不需要我们一个一个的去输入文字,而且可以在word中提前做好排版,会比较方便一点,而且不需要通过Python去手工设定字体、字号等排版。
案例:将文章《鸿门宴》中的所有ldquo;沛公rdquo;替换为ldquo;刘邦rdquo;。将名句ldquo;甚急!今者项庄拔剑舞,其意常在刘邦也。rdquo;替换为ldquo;项庄舞剑,意在沛公。rdquo;
鸿门宴模板文件大致如下:
执行代码:
#39;#39;#39;Word格式套用之套用模板#39;#39;#39; from docx import Document from docx.shared import Pt from docx.oxml.ns import qn document=Document(#39;鸿门宴.docx#39;) # 导入模板文件 document.styles[#39;Normal#39;].font.name=u#39;微软雅黑#39; # 设置默认字体,和字号 document.styles[#39;Normal#39;]._element.rPr.rFonts.set(qn(#39;w:eastAsia#39;),u#39;微软雅黑#39;) document.styles[#39;Normal#39;].font.size=Pt(12) def change_text(old_text,new_text): # 定义一个函数,将久闻字换成新文字 all_paragraphs=document.paragraphs # 获取所有的段落 for paragraph in all_paragraphs: for run in paragraph.runs: # 获取段落中不同格式的句子 run_text=run.text.replace(old_text,new_text) # 将文字进行替换 run.text=run_text all_tables=document.tables # 获取所有表格,这里没有表格,暂时用不到 for table in all_tables: # 依次获取表格的内容 for rows in table.rows: for cell in rows.cells: cell_text=cell.text.replace(old_text,new_text) # 替换表格里的新旧内容 cell.text=cell_text change_text(#39;沛公#39;,#39;刘邦#39;) # 调用函数 change_text(#39;甚急!今者项庄拔剑舞,其意常在刘邦也。#39;,#39;项庄舞剑,意在沛公#39;) document.save(#39;鸿门宴_替换.docx#39;) # 保存文件 执行程序完成以后的效果图:![]()