python实现替换word中的关键文字(使用通配符)
环境:Python3.6
本文主要是通过win32com操作word,对word中进行常用的操作。本文以替换为例,讲解一下如何使用Python在word中使用“通配符模式”(类似于正则表达式)替换文本内容。
#!/usr/bin/envpython #-*-coding:utf-8-*- importos importwin32com fromwin32com.clientimportDispatch #处理Word文档的类 classRemoteWord: def__init__(self,filename=None): self.xlApp=win32com.client.Dispatch('Word.Application')#此处使用的是Dispatch,原文中使用的DispatchEx会报错 self.xlApp.Visible=0#后台运行,不显示 self.xlApp.DisplayAlerts=0 #不警告 iffilename: self.filename=filename ifos.path.exists(self.filename): self.doc=self.xlApp.Documents.Open(filename) else: self.doc=self.xlApp.Documents.Add() #创建新的文档 self.doc.SaveAs(filename) else: self.doc=self.xlApp.Documents.Add() self.filename='' defadd_doc_end(self,string): '''在文档末尾添加内容''' rangee=self.doc.Range() rangee.InsertAfter('\n'+string) defadd_doc_start(self,string): '''在文档开头添加内容''' rangee=self.doc.Range(0,0) rangee.InsertBefore(string+'\n') definsert_doc(self,insertPos,string): '''在文档insertPos位置添加内容''' rangee=self.doc.Range(0,insertPos) if(insertPos==0): rangee.InsertAfter(string) else: rangee.InsertAfter('\n'+string) defreplace_doc(self,string,new_string): '''替换文字''' self.xlApp.Selection.Find.ClearFormatting() self.xlApp.Selection.Find.Replacement.ClearFormatting() #(string--搜索文本, #True--区分大小写, #True--完全匹配的单词,并非单词中的部分(全字匹配), #True--使用通配符, #True--同音, #True--查找单词的各种形式, #True--向文档尾部搜索, #1, #True--带格式的文本, #new_string--替换文本, #2--替换个数(全部替换) self.xlApp.Selection.Find.Execute(string,False,False,False,False,False,True,1,True,new_string,2) defreplace_docs(self,string,new_string): '''采用通配符匹配替换''' self.xlApp.Selection.Find.ClearFormatting() self.xlApp.Selection.Find.Replacement.ClearFormatting() self.xlApp.Selection.Find.Execute(string,False,False,True,False,False,False,1,False,new_string,2) defsave(self): '''保存文档''' self.doc.Save() defsave_as(self,filename): '''文档另存为''' self.doc.SaveAs(filename) defclose(self): '''保存文件、关闭文件''' self.save() self.xlApp.Documents.Close() self.xlApp.Quit() if__name__=='__main__': #path='E:\\XXX.docx' path='E:/XXX.docx' doc=RemoteWord(path) #初始化一个doc对象 #这里演示替换内容,其他功能自己按照上面类的功能按需使用 doc.replace_doc('','') #替换文本内容 doc.replace_doc('.','.')#替换.为. doc.replace_doc('\n','')#去除空行 doc.replace_doc('o','0')#替换o为0 #doc.replace_docs('([0-9])@[、,,]([0-9])@','\1.\2') 使用@不能识别改用{1,},\需要使用反斜杠转义 doc.replace_docs('([0-9]){1,}[、,,.]([0-9]){1,}','\\1.\\2') #将数字中间的,,、.替换成. doc.replace_docs('([0-9]){1,}[旧]([0-9]){1,}','\\101\\2') #将数字中间的“旧”替换成“01” doc.close()
以上这篇python实现替换word中的关键文字(使用通配符)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。