环境: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 = 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()

python处理word替换_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 替换文本 通配符_python替换word中的关键文字(使用通配符)

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

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

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

  5. python 读取 word 表格_python读取word表格

    python调用com,如何完成word表格操作 word中doc这个格式的文件是微软特有格式,微软没有向外公开任何的api接口文档,只能通过微软提供的OLE组件来提其COM接口,只要你的机器上安装了 ...

  6. python合并word表格_python合并word

    1 场景 合并多个word文件到一个文件中,用于文件的批量打印. 要求: 每个文件合并时,均从从一个新页面开始,文件之间的内容不连在一起. 文件的样式不发生改变. 2 方案 采用python实现,使用 ...

  7. python删除指定字符_python删除字符串中指定字符的方法

    最近开始学机器学习,学习分析垃圾邮件,其中有一部分是要求去除一段字符中的标点符号,查了一下,网上的大多很复杂例如这样 import re temp = "司法局让我和户 1 5. 8 0. ...

  8. python单词个数统计_Python 统计文本中单词的个数

    1.读文件,通过正则匹配 def statisticWord(): line_number = 0 words_dict = {} with open (r'D:\test\test.txt',enc ...

  9. python数据可视化库_python和r中用于数据可视化的前9个库

    python数据可视化库 In the rapidly growing world of today, when technology is expanding at a rate like neve ...

最新文章

  1. Postfix邮件设定相关
  2. 【渝粤题库】国家开放大学2021春1366英语教学理论与实践题目
  3. 十分钟让你明白AIDL
  4. Linux下批量替换文件内容和文件名(转)
  5. 基于SpringBoot开发一套完整的项目(一)准备工作
  6. Python int与string 的转换
  7. apimodel 可以重复吗_Web API是否需要有ViewModels层类?
  8. 【Computer Organization笔记01】计算机组成原理课程要求、计算机的层次结构、计算机的发展历史
  9. 键盘不能使用或者提示没有键盘开不了机的【解决办法】
  10. Iridient Developer的设置和预设文件
  11. Centos8 安装 mariadb 最新版 10.5.x
  12. 最全企业安全网管工具名单!
  13. FileUtils工具类学习
  14. Download Software Top 10
  15. hive sql 添加字段以及修改字段
  16. JAVA Swing添加表格
  17. 积化和差 和差化积公式
  18. 数据挖掘与机器学习:机器学习 --- 决策树
  19. 数据库连接池之自定义连接池(mysql)
  20. Oracle DBA手记4 数据安全警示录

热门文章

  1. 跳跳棋[LCA+二分查找]-洛谷1852
  2. 程序员的键盘使用指南
  3. 网易2019实习生招聘编程题
  4. 技术干货 | MindSpore AI科学计算系列(五):AI框架加速海洋数值模拟
  5. 明日之后最新服务器开服时间,明日之后什么时候开服 新服开区详解
  6. Flink实战(八十五):flink-sql使用(十二)Flink 与 hive 结合使用(四)Hive Read Write
  7. xtrareport 修改行颜色
  8. OpenGL多重纹理使用与理解
  9. php,tp5关键词,分词模糊查询并根据查询条件排序
  10. 在Windows10系统中同步Internet 时间