Python世界:自动化办公Word之批量替换文本生成副本

Python世界:自动化办公Word之批量替换文本生成副本

    • 任务背景
    • 编码思路
    • 代码实现
    • 相关参考

任务背景

为提高办公效率,用python试手了一个word任务,要求如下:

给你一个基础word文档A,格式为docx,名字为:A.docx。A文档中有表格和文字,要求是将里面的字符串"完成绘画"分别替换成完成制作款式x复习制作款式x,输出相应副本,命名为对应序号增序文档,如:1、A.docx, 2、A.docx

要求是输出1000份这样的增序文档。

编码思路

从问题中可提炼以下实现思路:

  • 初始化,输入目标目录、文件命名格式、待替换源字符串、目标字符串
  • 支持文档段落和表格内容查找,支持文本替换
  • 文本增序和命名增序处理

效果预览:

在这里插入图片描述

在这里插入图片描述

代码实现

文件名:doc_copy_replace.py

代码如下:

# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
"""
Created on Tue Oct 29 22:20:16 2024
@author: 来知晓
"""

from docx import Document


def read_ducment(old, new, document):
    # 遍历文档
    for paragraph in document.paragraphs:
        for run in paragraph.runs:
            #替换功能
            if old in run.text:
                run.text=run.text.replace(old,new)
 
    # 遍历表格
    for table in document.tables:
        for row in table.rows:
            for cell in row.cells:
                #遍历表格段落内容,回到上个步骤,将cell当作paragraph处理
                for paragraph in cell.paragraphs:
                    for run in paragraph.runs:
                        #替换功能
                        if old in cell.text:
                            run.text=run.text.replace(old,new)


# doc_path = r'D:\iocode\来知晓\tmp\A.docx'
# doc_new_path = r'D:\iocode\来知晓\tmp\new.docx'
# str_src = '完成绘画'
# str_tar_odd = '完成制作款式'
# str_tar_even = '复习制作款式'

# # 单样例测试
# document = Document(doc_path)
# read_ducment(str_src, str_tar, document)
# document.save(doc_new_path)


# 正式demo
cnt = 1000
doc_new_dir = r'D:\iocode\来知晓\tmp'
doc_path_origin = r'D:\iocode\来知晓\tmp\A.docx'
str_src = '完成绘画'
str_tar_odd = '完成制作款式'
str_tar_even = '复习制作款式'

cnt_d2 = cnt // 2
str_split = '\\'

for i in range(cnt_d2):
    k = i + 1
    str_file_name = r'、A.docx'
    doc_new_path_odd = doc_new_dir  + str_split + str(2*k-1) + str_file_name
    str_tar_odd_conca = str_tar_odd + str(k)
    document_odd = Document(doc_path_origin)
    read_ducment(str_src, str_tar_odd_conca, document_odd)
    document_odd.save(doc_new_path_odd)
    
    doc_new_path_even = doc_new_dir + str_split + str(2*k) + str_file_name
    str_tar_even_conca = str_tar_even + str(k)
    document_even = Document(doc_path_origin)
    read_ducment(str_src, str_tar_even_conca, document_even)
    document_even.save(doc_new_path_even)

相关参考

  1. python-docx替换文档段落及表格table指定内容,不改变格式方法
  2. Python 如何使用python-docx替换Word文档中的文本并保存

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/904239.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于matlab的线性卷积演示系统

文章目录 前言1. 卷积的简单介绍1.1 翻褶1.2 移位1.3 相乘1.4相加1.5 整体的运行效果展示 2.App Designer的介绍3.具体的开发步骤3.1 声明成员变量3.2 设计基本布局3.3 编写回调函数 4.运行展示结语 前言 本篇文章按照如下要求,完成线性卷积演示系统 (1)用matlab完…

DICOM标准:深入详解DICOM数据模型,理解DICOM数据模型

目录 引言 ​编辑 DICOM数据模型概述 ​编辑 DICOM数据模型示例 DICOM对象的概念 1. 图像对象(Image Object) 2. 序列(Sequence) 3. 系列(Series) 4. 研究(Study) 5. 患者…

DICOM标准:DICOM服务类详解,了解存储服务类、查询/检索服务类(Q/R Service Class)和工作流管理服务类等原理

目录 一、概述 二、存储服务类(Storage Service Class) 存储操作(C-STORE) 确认操作(C-STORE-RSP) 三、查询/检索服务类(Query/Retrieve Service Class) 查询操作(C…

ChangeCLIP环境配置

看到有个现成的dockerfile,先试试 ok首先需要root权限的用户 才能用docker,其次要外网,要不然有些东西好像下载不了 (失败) 那就直接配吧 我看12服务器上有个openmmlab的环境,先基于这个环境吧 # 用lx账…

Xcode文件默认存储位置-使用c++file保存文件默认路径以及设置为路径为当前项目路径

Xcode文件默认存储位置-使用cfile保存文件默认路径以及设置为路径为当前项目路径 1.概述 使用Xcode工具开发时候,遇到C调用file创建文件后,在当前项目中找不到文件路径。这是由于xcode会将文件保存到默认设置的路径。下面是查看文件默认存储路径和修改…

宠物空气净化器哪个牌子好?双十一铲屎官们有什么推荐吗?

最近换季,我家猫掉毛实在太严重了,加上风大,把浮毛吹的哪里都是。浮毛接触到鼻子后,我经常鼻痒难受,去了医院才知道,已经是鼻炎的前兆了。为了解决浮毛问题,我也寻找了很多方法。 还是看了宠物博…

智慧用电监控装置:引领0.4kV安全用电新时代

在智能科技日新月异的今天,电力安全与管理正迎来一场前所未有的革新。为0.4kV以下TT、TN系统打造的智慧用电在线监控装置不仅重新定义了电力监控的边界,更为建筑安全用电筑起了一道坚不可摧的防线。 装置集成了单、三相交流电精确测量、四象限电能计量、…

C++ 二叉树进阶:相关习题解析

目录 1. 二叉树创建字符串。 2. 二叉树的分层遍历1 3. 二叉树的分层遍历2 4. 二叉树的最近公共祖先 5. 将二叉搜索树转换为排序的双向链表 6. 从前序与中序遍历序列构造二叉树 7. 从中序与后序遍历序列构造二叉树 8. 二叉树的前序遍历,非递归迭代实现 9.…

【AIGC】AI工作流workflow实践:构建日报

workflow实践 引言实现步骤分析实践创建 dify workflow 应用创建工作流内部节点1、设置输入字段2、创建两个LLM节点3、设置结束节点 运行工作流 结语 引言 工作流 workflow 是现在 LLM 很重要的一个概念,因为对于一个模型来说,非常复杂的问题很难一次性…

计算机视觉-对极几何

1 基本概念 对极几何(Epipolar Geometry)描述的是两幅视图之间的内在射影关系,与外部场景无关,只依赖于摄像机内参数和这两幅视图之间的相对位姿 两视图的对极几何可以理解为图像平面与以基线为轴的平面束相交的几何关系&#xf…

jjycheng字符签名

jjycheng字符签名--字符 jjjj jjjj hhhhhhh j::::j j::::j h:::::h …

AI大模型开发架构设计(14)——基于LangChain大模型的案例架构实战

文章目录 基于LangChain大模型的案例架构实战1 LangChain 顶层架构设计以及关键技术剖析LangChain 是什么?LangChain的主要功能是什么?LangChain 顶层架构设计LangChain 典型使用场景:QA 问答系统LangChain 顶层架构设计之 Model I/OLangChain 顶层架构…

Ubuntu下安装和配置MySQL5.7教程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 在ubuntu下安装MySQL数据库 查看操作系统版本 ​编辑 添加 MySQL APT 源 访问下载页面并下载发布包 安装发布包 安装MySQL 查看MySQL状态 开启自启动 登…

设计模式4-工厂模式策略模式

目录 一 工厂模式 1.1 思想 1.2 案例 1.2.1 接口 1.2.2 实现类 1.2.3 工厂类 1.2.4 调用 二 策略模式 2.1 思想 2.2 案例 2.2.1 接口 2.2.2 实现类 2.2.3 策略类 2.2.4 调用 三 工厂模式策略模式 3.1 思想 3.2 案例 3.2.1 接口 3.2.2 实现类 3.2.3 定义F…

【HTML】之form表单元素详解

HTML表单是网页与用户交互的关键组成部分,它允许用户输入数据并将数据提交到服务器进行处理。本文将全面详细地介绍HTML表单的各个方面,从基础元素到高级用法,并提供丰富的代码示例和中文注释,帮助你彻底掌握表单的使用。 1. 表单…

shodan5,参数使用,批量查找Mongodb未授权登录,jenkins批量挖掘

查找美国安全局漏洞 nww.nsa.gov(美国安全局官方网站) net参数使用 搜索指定的ip网段 shodan search --limit 10 --fields ip_str,port net:208.88.84.0/24 (老美国家安全局的一个网段)可能直接访问不太行,可以使用host参数,得到域名再去…

【Unity基础】初识UI Toolkit - 编辑器UI

(本文所需图片在文章上面的资源中,点击“立即下载”。) 本文介绍了如何通过UI工具包(UI Toolkit)来创建一个编辑器UI。 一、创建项目 1. 打开Unity创建一个空项目(任意模板),这里我…

NVR小程序接入平台/设备EasyNVR多个NVR同时管理多平台级联与上下级对接的高效应用

政务数据共享平台的建设正致力于消除“信息孤岛”现象,打破“数据烟囱”,实现国家、省、市及区县数据的全面对接与共享。省市平台的“级联对接”工作由多级平台共同构成,旨在满足跨部门、跨层级及跨省数据共享的需求,推动数据流通…

Android 获取OAID

获取OAID 老规矩,直接上: implementation com.huawei.hms:opendevice:6.11.0.300 // 要获取华为vaid 和aaid,还需添加opendevice 依赖implementation(name: oaid_sdk_2.5.0, ext: aar) import android.content.Context; import android.util.…

Flume采集Kafka数据到Hive

版本: Kafka:2.4.1 Flume:1.9.0 Hive:3.1.0 Kafka主题准备: Hive表准备:确保hive表为:分区分桶、orc存储、开启事务 Flume准备: 配置flume文件: /opt/datasophon/flume-1…