实例14:用Python批量替换多个Word文件中的文字
import docxdef info_update(doc,old_info, new_info):
”’此函数用于批量替换合同中需要替换的信息 doc:文件 old_info和new_info:原文字和需要替换的新文字 ”’
#读取段落中的所有run,找到需替换的信息进行替换
for para in doc.paragraphs: #
for run in para.runs:
run.text = run.text.replace(old_info, new_info) #替换信息
#读取表格中的所有单元格,找到需替换的信息进行替换
for table in doc.tables:
for row in table.rows:
for cell in row.cells:
cell.text = cell.text.replace(old_info, new_info) #替换信息
我们上面直接借用实例7中定义好的用于替换文字的函数info_update。只需要向其中传入目标文件路径,待替换的词和新词即可。 然后导入os库,获取目标文件及其路径,如下。import os #用于获取目标文件所在路径path=”data/” # 文件夹路径files=[]for file in os.listdir(path):
if file.endswith(“.docx”): #排除文件夹内的其它干扰文件,只获取word文件
files.append(path+file) files>>[‘data/公司001合同.docx’,
‘data/公司002合同.docx’,
‘data/公司003合同.docx’,
‘data/公司004合同.docx’,
‘data/公司005合同.docx’,
‘data/公司006合同.docx’,
‘data/公司007合同.docx’,
‘data/公司008合同.docx’,
‘data/公司009合同.docx’,
‘data/公司010合同.docx’]
然后就可以开始进行批量替换操作了。可到文件夹“替换结果”中查看结果。for file in files:
doc = docx.Document(file)
info_update(doc,”商贸”, “贸易”)
doc.save(“data/替换结果/{}”.format(file.split(“/”)[-1]))
print(“{}替换完成”.format(file))>>data/公司001合同.docx替换完成data/公司002合同.docx替换完成data/公司003合同.docx替换完成data/公司004合同.docx替换完成data/公司005合同.docx替换完成data/公司006合同.docx替换完成data/公司007合同.docx替换完成data/公司008合同.docx替换完成data/公司009合同.docx替换完成data/公司010合同.docx替换完成
但如果另外的地方也出现了一次或多次“商贸”这个词,且是不能替换的呢有办法,我们可以指定替换的段落范围。比如我们故意在“特殊_含干扰词.docx”中间插入4个词“商贸”。这样,我们就有6个“商贸”在文档里了。
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树进阶语法文件211446 人正在系统学习中 相关资源:远贸软件客户关系管理软件-专业指导文档类资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!