怎么用python替换word中的关键文字
创始人
2024-12-20 07:02:44
0次

环境:Python3.6

本文主要是通过win32com操作word,对word中进行常用的操作。本文以替换为例,讲解一下如何使用Python在word中使用“通配符模式”(类似于正则表达式)替换文本内容。

#!/usr/bin/env python# -*- coding:utf-8 -*-import osimport win32comfrom win32com.client import Dispatch# 处理Word文档的类class RemoteWord:  def __init__(self, filename=None):    self.xlApp = win32com.client.Dispatch('Word.Application') # 此处使用的是Dispatch,原文中使用的DispatchEx会报错    self.xlApp.Visible = 0 # 后台运行,不显示    self.xlApp.DisplayAlerts = 0 #不警告    if filename:      self.filename = filename      if os.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 = ''  def add_doc_end(self, string):    '''在文档末尾添加内容'''    rangee = self.doc.Range()    rangee.InsertAfter('\n' + string)  def add_doc_start(self, string):    '''在文档开头添加内容'''    rangee = self.doc.Range(0, 0)    rangee.InsertBefore(string + '\n')  def insert_doc(self, insertPos, string):    '''在文档insertPos位置添加内容'''    rangee = self.doc.Range(0, insertPos)    if (insertPos == 0):      rangee.InsertAfter(string)    else:      rangee.InsertAfter('\n' + string)  def replace_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)  def replace_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)  def save(self):    '''保存文档'''    self.doc.Save()  def save_as(self, filename):    '''文档另存为'''    self.doc.SaveAs(filename)  def close(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()

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...