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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。