环境:Python3.6

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

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
import win32com
from 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 = filenameif 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()

参考:https://www.cnblogs.com/zhuluqing/p/8445901.html

https://blog.csdn.net/baidu_39416074/article/details/80926443

python替换word中的关键文字(使用通配符)相关推荐

  1. python读取word文件并替换部分文字_python实现替换word中的关键文字(使用通配符)...

    环境:Python3.6 本文主要是通过win32com操作word,对word中进行常用的操作.本文以替换为例,讲解一下如何使用Python在word中使用"通配符模式"(类似于 ...

  2. python 替换文本 通配符_python实现替换word中的关键文字(使用通配符)

    环境:Python3.6 本文主要是通过win32com操作word,对word中进行常用的操作.本文以替换为例,讲解一下如何使用Python在word中使用"通配符模式"(类似于 ...

  3. python处理word替换_python替换word中的关键文字(使用通配符)

    环境:Python3.6 本文主要是通过win32com操作word,对word中进行常用的操作.本文以替换为例,讲解一下如何使用Python在word中使用"通配符模式"(类似于 ...

  4. python 替换文本 通配符_python替换word中的关键文字(使用通配符)

    环境:Python3.6 本文主要是通过win32com操作word,对word中进行常用的操作.本文以替换为例,讲解一下如何使用Python在word中使用"通配符模式"(类似于 ...

  5. POI替换word中的指定文字(包含表格,表格中有回车)

    网上可以找到很多POI替换Word中指定文字的代码,然而基本上都没有对文档中的表格中包含的段落(回车)进行处理.自己写了,代码记录如下: /** * *@templetStream 文档的输入流 *@ ...

  6. python替换word中的文字内容

    摘要:这篇文章介绍了如何使用python[3.6版本]把pdf文件转换为word文档并替换word文档中的文字内容,这里替换的规则是中英转换或者其它自定义规则 pdf转换为word pdf文件由于很难 ...

  7. python替换word中的图片_python如何提取word内的图片

    解压.docx文件实现提取图片 前言 .docx文件其实也就是一个压缩文件,当我们将一个.docx文件直接解压后可以看到如下目录 其中我们要找的图片就在word/media目录内,如图 所以,要提取w ...

  8. python复制word中的内容,包括格式、图片、文字

    需要安装模块,win32com 下载地址:http://download.csdn.net/detail/clean_water/9759816 # 导入模块 import win32com.clie ...

  9. Using POI to replace elements in WORD(.docx/.doc)(使用POI替换word中的特定字符/文字)【改进】...

    上一篇文章可能有点bug,这个是改进 package com.xfzx.test.POI.main;import java.io.File; import java.io.FileInputStrea ...

最新文章

  1. shell 动态进程守护
  2. CentOS下g++: command not found问题的解决
  3. 在线学习与离线学习如何区分
  4. linux unix系统区别,Unix和Linux操作系统有什么区别?看这里!
  5. GDCM:gdcm::ByteSwap的测试程序
  6. c#去掉html样式,C# 清除HTML格式
  7. oracle输出xml文件格式,在oracle中通过字段信息生成xml文件
  8. 在Spring框架中使用SQL存储过程
  9. GDB调试带参数argc argv的程序
  10. 关于“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”的解决
  11. DVWA之SQL注入代码审计
  12. matlab 矩阵 对称,如何使用Matlab产生对称矩阵 | 学步园
  13. golang 单元测试进阶篇
  14. 数学思维导图学习方法
  15. [OpenGL] 太阳镜头光晕效果
  16. JavaScript介绍及其特点
  17. 项目管理:目标的价值表现的四个方面
  18. Android O 自定义通知实例及一个自定义自动适配缩放图片至特定大小的田字格ImageView
  19. 入选腾讯区块链加速器全球32强,智谷星图推动区块链产教融合
  20. 独家揭秘:阿里小程序的一云多端!看这篇就够了!

热门文章

  1. flume 数据存入mysql(二)对敏感信息加密
  2. NPDP门径管理流程
  3. php将汉字转换为拼音和得到词语首字母
  4. 网络编程五-服务器推送技术
  5. shiro过滤器详解
  6. Java实现混音 音频合成_使用javax.sound实现简单音频播放
  7. 年薪超200万的最新最热技术岗:无需编码,靠给AI吹“枕边风”赚钱
  8. Tomcat定时重启脚本
  9. Scriptlet的3种模式
  10. 手机如何裁剪视频?分享三个裁剪方法给你