Python Word实现批量替换文本并生成副本

 更新时间:2024年10月30日 15:04:52   作者:来知晓  
这篇文章主要为大家详细介绍了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)

到此这篇关于Python Word实现批量替换文本并生成副本的文章就介绍到这了,更多相关Python Word批量替换文本内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python使用Web框架Flask开发项目

    Python使用Web框架Flask开发项目

    本文详细讲解了Python使用Web框架Flask开发项目的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • Python 文件常数引用问题小结

    Python 文件常数引用问题小结

    Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言,本文给大家介绍Python 文件常数引用问题小结,感兴趣的朋友跟随小编一起看看吧
    2025-10-10
  • Python实现简单求解给定整数的质因数算法示例

    Python实现简单求解给定整数的质因数算法示例

    这篇文章主要介绍了Python实现简单求解给定整数的质因数算法,结合实例形式分析了Python正整数分解质因数的相关操作技巧,需要的朋友可以参考下
    2018-03-03
  • Python ORM框架SQLAlchemy学习笔记之关系映射实例

    Python ORM框架SQLAlchemy学习笔记之关系映射实例

    这篇文章主要介绍了Python ORM框架SQLAlchemy学习笔记之关系映射实例,Classic (经典模式)和Modern (现代模式),分别介绍了,需要的朋友可以参考下
    2014-06-06
  • 使用PyGame显示图像的四种方案实例代码

    使用PyGame显示图像的四种方案实例代码

    由于前面学习了使用pygame的简单操作,现在学习当前的pygame怎么加载图片,下面这篇文章主要给大家介绍了关于使用PyGame显示图像的四种方案,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • Python语音合成之第三方库gTTs/pyttsx3/speech横评(内附使用方法)

    Python语音合成之第三方库gTTs/pyttsx3/speech横评(内附使用方法)

    Python是一种非常强大的脚本语言,可以用来实现各种复杂的应用,其中之一就是文本转语音,即把文字转换成声音来发出,下面这篇文章主要给大家介绍了关于Python语音合成之第三方库gTTs/pyttsx3/speech横评的相关资料,文中还介绍了详细的使用方法,需要的朋友可以参考下
    2023-05-05
  • Windows环境下python环境安装使用图文教程

    Windows环境下python环境安装使用图文教程

    这篇文章主要为大家详细介绍了Windows环境下python安装使用图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • python 如何实现跳过异常继续执行

    python 如何实现跳过异常继续执行

    这篇文章主要介绍了python 如何实现跳过异常继续执行,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • pytorch实现保证每次运行使用的随机数都相同

    pytorch实现保证每次运行使用的随机数都相同

    今天小编就为大家分享一篇pytorch实现保证每次运行使用的随机数都相同,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • python实现NB-IoT模块远程控制

    python实现NB-IoT模块远程控制

    这篇文章主要为大家详细介绍了python实现NB-IoT模块远程控制,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06

最新评论