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批量替换文本内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
PyTorch Distributed Data Parallel使用详解
这篇文章主要为大家介绍了PyTorch Distributed Data Parallel使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-03-03pycharm使用conda创建的虚拟环境时找不到python.exe解决办法
这篇文章主要给大家介绍了关于pycharm使用conda创建的虚拟环境时找不到python.exe的解决办法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考价值,需要的朋友可以参考下2024-03-03
最新评论