首页 > 编程语言 >利用Python批量替换多个word文档中的指定

利用Python批量替换多个word文档中的指定

时间:2023-08-09 22:35:51浏览次数:56  
标签:info word filepath Python text old 文档 new path

需求

最近有一个项目方案,涉及到2000多个文档。之前公司有相关案例,但是需要将2000多个文档中的特殊名称改成现有项目,单独操作需要打开每个文档区搜索替换,费事费力。通过python中对文档的操作进行批量替换。

方案思路

1.获取所有需要替换的word文件路径

def getdocreplace(path):   
    files=[]
    for dirpath, dirnames, filenames in os.walk(path):
        for filepath in filenames:
            if filepath.endswith(".doc") or filepath.endswith("docx"):
                files.append(os.path.join(dirpath, filepath))
    return files

2.批量打开word,遍历循环word中的每一行进行查找替换,核心代码如下

def info_update(docfile,old_info,new_info):
    for para in docfile.paragraphs:
        for run in para.runs:
            run.text = run.text.replace(old_info,new_info)
    for table in docfile.tables:
        for row in table.rows:
            for cell in row.cells:
                cell.text = cell.text.replace(old_info,new_info)

心得体会

python真是一个好用的编程语言,语法简单,代码简洁易于编写。同时python社区有各种各样的python库,具有强大的功能。如这次简单的一个案例,如果人工去改上千的文档,需要大量时间。通过python简单的几十行代码,很短的时间就能完成大量工作。而且学习容易,入门简单。

之前还有很多解决日常工作中的案例以及以后还会用的更多的案例我会分享到51。下面是本次案例的全部代码。本段功能需要引用os和docx两个库。我使用的python版本为3.7。

import os
import docx
#获取要替换的所有文件路径,path为最外层文件夹。
def getdocreplace(path):
    files = []
	for dirpath,dirnames,filenames in os.walk(path):
        for filepath in filenames:
            if filepath.endswith(".doc") or filepath.endswith("docx"):
                files.append(os.path.join(dirpath,filepath)
   	return files

#遍历替换一个word文件中的字段,old_info为要替换的旧字段,new_info为新字段
def info_update(docfile,old_info,new_info):
    for para in docfile.paragraphs:
        for run in para.runs:
            run.text = run.text.replace(old_info,new_info)
    for table in docfile.tables:
        for row in table.rows:
            for cell in row.cells:
                cell.text = cell.text.replace(old_info,new_info)
#执行操作
if __name__ =="__main__":
   path = "d:\docfile"
   files = getdocreplace(path)
   for file in files:
       doc = docx.Document(file)
       info_update(doc,"old_project","new_project")
       doc.save(file)
       print("{}替换完成".format(file))

标签:info,word,filepath,Python,text,old,文档,new,path
From: https://blog.51cto.com/u_16221091/7026420

相关文章

  • Python基础知识总结
     前言     本总结所观看视频如下:变量,数字,字符串,注释_哔哩哔哩_bilibili【Python】3小时不挂_哔哩哔哩_bilibili目录前言一、基本命令 二、基本计算语句 三、字符串操作 四、官方文档的使用五、列表与元组 六、字典 七、集合 八、值类型变量与引用类型变量 九、pr......
  • 外设移除区别/终端记录/重设密码/python测试/数据拷贝最大限度
    1.1【卸载】【弹出】【安全移除驱动器】区别【卸载】只是解除挂载(可以直接重新挂载)【弹出】弹出读卡器里面的存储卡(需要重新插入存储卡)【安全移除驱动器】断掉设备电源,移除设备(需要重新插入设备)1.2记录你的终端操作──script   (点击详细)如果过程不是很长,一屏以内的话一......
  • python虚拟环境
    为不同的项目创建隔离的Python虚拟环境来帮助保持不同项目所需的依赖关系。1.什么是Python环境系统环境变量PATH,当我们在命令行中运行程序时,系统会根据PATH配置的路径列表依次查寻是否有可执行文件python如果在所有路径列表中都查找不到,就会报报错:'python'不是内部或外部命令,也......
  • opencv-python 单应性矩阵的应用
    单应性(Homography)变换:可以简单的理解为它用来描述物体在世界坐标系和像素坐标系之间的位置映射关系。对应的变换矩阵称为单应性矩阵。单应性矩阵在 图像校正、图像拼接、相机位姿估计、视觉SLAM等都有应用。单应性矩阵主要涉及两个函数:1  findHomography(srcPoints,dstPoin......
  • Python基础day63 Django分页和cookie、session
    推导分页的原理分页:当我们要展示的数据特别多的时候,一页展示不完,这个时候我们需要把要展示的数据分成多页展示分页中需要的几个参数:1.总数据有多少条2.每页展示多少条数据(自己规定的20)3.一共展示多少页4.总页数=总数据量/每页展示多少条数据5.当前第几页(前端传过去......
  • 【总结一下|PTA】浙大版《Python 程序设计》题目集
    前言Hello!小伙伴!非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ 自我介绍ଘ(੭ˊᵕˋ)੭昵称:海轰标签:程序猿|C++选手|学生简介:因C语言结识编程,随后转入计算机专业,有幸拿过一些国奖、省奖…已保研。目前正在学习C++/Linux/Python学习经验:扎实基础+多做笔记+多......
  • Centos7安装Python3.8
    Centos7安装Python3.8Centos7安装Python3.8安装编译相关工具yum-ygroupinstall"Developmenttools"yum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-develyum-yin......
  • python语言--------csv模块将txt文件转换为表格csv格式
    上代码:importcsvcsvFile=open("C:/Users/Administrator/Desktop/1.csv",'w',newline='',encoding='utf-8')writer=csv.writer(csvFile)csvRow=[]f=open("C:/Users/Administrator/Desktop/np.txt",'r'......
  • python 实现 pdf 转为图片
    1importfitz2importos3fromPILimportImage45defconvert_pdf2img(file_relative_path):67page_num=18filename=file_relative_path.split('.')[-2]9ifnotos.path.exists(filename):10os.makedirs(filen......
  • oFono/dbus-python环境搭建以及简单认识
    关键词:D-Bus、oFono、dbus-python、ofonod等等。1.oFono环境搭建(Buildroot+QEMU)和启动1.1Buildroot配置ofonod+dbus-python配置oFono:Targetpackages->Networkingapplication->connman->enableofonosupport使能Python3:Targetpackages->Interpreterlanguage......