python读取word文件并替换部分文字_python实现替换word中的关键文字(使用通配符)...
环境: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博客。
python读取word文件并替换部分文字_python实现替换word中的关键文字(使用通配符)...相关推荐
- python读取txt文件并输出到表格_Python读取txt内容写入xls格式excel中的方法
由于xlwt目前只支持xls格式,至于xlsx格式,后面会继续更新 import xlwt import codecs def Txt_to_Excel(inputTxt,sheetName,star ...
- python读取txt文件如何按数字分隔_python 读txt文件,按‘,’分割每行数据操作
按行读取TXT文件 fname = './新建文件夹/yob2010.txt' //文件夹路径 with open(fname,'r+',encoding='utf-8') as f: for lin ...
- python读取json文件多个json数据_Python 加载包含多个JSON对象的JSON文件
defwriteJsonFile(data,outfilename): with open(outfilename+'.json', 'wt',encoding='utf-8') as f:for m ...
- python 替换文本 通配符_python实现替换word中的关键文字(使用通配符)
环境:Python3.6 本文主要是通过win32com操作word,对word中进行常用的操作.本文以替换为例,讲解一下如何使用Python在word中使用"通配符模式"(类似于 ...
- 【word2vec】python读取pdf文件,通过词向量寻找相关词语
1. 什么是Word2vec 对于自然语音处理而言,首先要做的就是将文字转换为计算机能看懂的数字,也就是说,将词语进行数字化. (1)one-hot编码,比较常用的一种编码方式,又叫独热编码. 对于一 ...
- python读取文件某一行-使用python读取.text文件特定行的数据方法
如何用python循环读取下面.txt文件中,用红括号标出来的数据呢? 首先,观察数据可知,不同行的第一个数据元素不一样,所以考虑直接用正则表达式. 再加上,对读和写文件的操作,就行了 注:我用的是p ...
- python读取文件多行内容-使用python读取.text文件特定行的数据方法
如何用python循环读取下面.txt文件中,用红括号标出来的数据呢? 首先,观察数据可知,不同行的第一个数据元素不一样,所以考虑直接用正则表达式. 再加上,对读和写文件的操作,就行了 注:我用的是p ...
- 使用Python读取pdf文件
学习python,不用再为pdf无法转换而烦恼~~~ 下面我们介绍python读取pdf文件(主要是针对文字部分) 1.打开环境 2.安装pdfminer3k包 可以使用jupyter noteboo ...
- 已解决(Python读取xml文件报错)xmL.etree.ELementTree.ParseError:not well-formed (invalid token): Line
已解决(Python读取xml文件报错)xmL.etree.ELementTree.ParseError:not well-formed (invalid token): Line 文章目录 报错信息 ...
最新文章
- Serializable Parcelable
- 听易中天品三国---看孔融,杨修之死
- python 中的路径. ./ .. ../和相对路径的写法
- XML内部DTD约束 Day24
- Android隐藏EditText长按菜单中分享功能探索
- pip 安装_安装 pip 轻松管理 PyPI 软件包 | Linux 中国
- 第六次程序设计作业 计算器图型界面的设计
- dhl:指定的命名连接在配置中找不到、非计划用于 EntityClient 提供程序或者无效。...
- find命令用法集锦
- Python科学库sklearn.numpy.scipy. matplotlib.pandas
- json数据格式分析
- 凸优化学习笔记(一):仿射集、凸集、锥
- java 多线程局域网快速传输文件,java大文件复制最高效方法多线程FileChannel
- 腾讯地图获取全国行政区划检索列表Demo
- 集丰照明|如何深度解读 LED 标准?
- 基于海康威视IP摄像头和虹软的MFC人脸识别系统开发教程
- 何为真正的大规模定制
- MM 移动类型-入门篇
- IT博客大赛——我的写博历程和拉票方法
- 哈工大ltp词性标注列表和ICTCLAS词性列表