Python自动合并Word文件同时添加分页符的方法
本文介绍基于Python,实现对多个Word文档加以自动合并,并在每次合并时按要求增添一个分页符的方法。
现有多个Word文档文件,需将其按名称顺序合并为一个新的Word文件,且需保证每一次合并时,都另起一页(即新的Word文件一页中,不能出现两个及以上的原本单个Word文件的内容)。
一般的,实现多个Word文件的合并,在Word中可以通过“插入”→“文本”→“对象”的方式进行,较为方便。

在弹出的窗口中选择需要合并的Word文件即可。

但是,这种方法工作量较大,且无法满足合并时另起一页的要求。例如,如果原本有两个Word文件,每个文件中都仅有一页,一页中仅在第一行有内容(这里假设是一行数字),则合并后的新Word文件同样为一页,该页中包含两行数字,即无法另起一页合并。
因此,本文就结合Python中python-docx(docx)模块与docxcompose模块,实现本文开头提及的需求。
首先安装python-docx模块。由于我用的是Anaconda,因此就直接在Anaconda Prompt (Soft)中加以安装。
打开Anaconda Prompt (Soft)。

在弹出的界面中输入:
conda install -c conda-forge python-docx

输入y,开始安装。

随后即可安装完成。

接下来安装docxcompose,还是一样的操作。输入:
pip install docxcompose

安装完成后,即可开始代码的书写。整体代码如下:
import os
from docx import Document
from docxcompose.composer import Composer
original_docx_path='F:/其他学生工作/2020就业联络员/2021.06派遣材料与调档函/地信1701_就业派遣材料/'
new_docx_path='F:/其他学生工作/2020就业联络员/2021.06派遣材料与调档函/地信1701.docx'
all_word=os.listdir(original_docx_path)
all_file_path=[]
for file_name in all_word:
all_file_path.append(original_docx_path+file_name)
master=Document(all_file_path[0])
middle_new_docx=Composer(master)
num=0
for word in all_file_path:
word_document=Document(word)
word_document.add_page_break()
if num!=0:
middle_new_docx.append(word_document)
num=num+1
middle_new_docx.save(new_docx_path)
首先,对代码加以初步介绍。original_docx_path为存放需要合并的Word文件路径,new_docx_path为需要合并入其中的Word文件,这里大家直接在目标路径下新建一个Word文件并重命名为需要的文件名即可。
随后,通过os.listdir获取所有需要合并的Word文件文件名。在这里需要注意,如果需要按照文件名称作为合并顺序,大家直接在资源管理器中调整文件排序方法为名称即可。随后通过.append()逐一将文件名称与其路径合并。
接下来,设立一个Word文件模板master。其实这个模板就是限定了合并完成后的新Word文件的字体等格式,如果我们不设置模板,就会用docx模块中的默认模板,导致合并后的文件字体与合并前的文件字体不一致(内容是一致的,主要是字体等格式会出问题)。在这里,为了保证合并完成后的新Word文件的字体等格式与合并前文件一致,直接用all_file_path[0](也就是即将要被合并的第一个文件)作为模板即可。其次,将模板用Composer()激活(这里Composer函数个人认为就是激活的作用),从而将其作为模板格式,对多个待合并的文件加以约束。
最后,由于需要保证每一次合并都另起一页,便用.add_page_break()函数,在每一次合并前将这一待合并的文件末尾增添分页符。同时,由于我们用了第一个待合并文件作为模板,因此后期只需要从第二个文件开始进行合并即可(可以理解为,文件一旦选择为模板,其自动完成了自身的合并)。最后保存文件即可。
综上,便完成了“按名称顺序合并为一个新的Word文件,且需保证每一次合并时,都另起一页”的需求。但是需要注意,这一方法对于较为复杂的Word文件(例如含有文本框等形式内容的文件)不能实现合并,会报错;对于含有普通文字、图片等的Word文件而言,还是很方便的~
Python自动合并Word文件同时添加分页符的方法的更多相关文章
- 借助python工具从word文件中抽取相关表的定义,最后组装建表语句-非常好
借助python工具从word文件中抽取表的定义,最后组装建表语句-非常好 --如有转载请以超链接的方式注明原文章出处,谢谢大家.请尊重每一位乐于分享的原创者 1.python脚本 ## -*- co ...
- 【word xml】将word转化为xml格式后,如何在xml中卫word添加分页符
1.首先在xml中找到我们需要添加分页符的位置 例如:我需要在这个第一部分上面添加一个分页符 2.找到这个[第一部分]这个位置之后,开始往上找,找到对应的位置 3.在</w:pPr>下方添 ...
- Android开发过程中在sh,py,mk文件中添加log信息的方法
Android开发过程中在sh,py,mk文件中添加log信息的方法 在sh文件中: echo "this is a log info" + $info 在py文件中: print ...
- python自动更新pom文件
前言 项目越来越多,版本管理越来越麻烦,在项目上我使用 maven version 来进行版本管理.主要还是在分布式项目中模块众多的场景中使用,毕竟各个模块对外的版本需要保持统一. 关于这个插件如何使 ...
- 使用Python批量合并PDF文件(带书签功能)
网上找了几个合并pdf的软件,发现不是很好用,一般都没有添加书签的功能. 又去找了下python合并pdf的脚本,发现也没有添加书签的功能的. 于是自己动手编写了一个小工具,使用了PyPDF2. 下面 ...
- [转载]java合并word文件
需求背景 在互联网教育行业,做内容相关的项目经常碰到的一个问题就是如何动态生成一张word试卷.事先把题库中的每一道试题都已经保存成一个独立的word文件了,但是在选择了部分试题生成一张word试卷的 ...
- [原创]java合并word文件
需求背景 在互联网教育行业,做内容相关的项目经常碰到的一个问题就是如何动态生成一张word试卷.事先把题库中的每一道试题都已经保存成一个独立的word文件了,但是在选择了部分试题生成一张word试卷的 ...
- python 自动生成model 文件 案例分析
生成方式 Python中想要自动生成 model文件可以通过 sqlacodegen这个命令来生成对应的model文件 sqlacodegen 你可以通过pip去安装: pip install sql ...
- WORD学习之插入分页符
我们在用Word编辑文档时,不可避免的需要对文档进行页面布局,才能使得文档看起来更加美观.有时候会使用到分页符,下面就简单介绍一下分页符 分页符 主要作用: 1.若要把两段分开在两页显示时,把光标定位 ...
- Python自动批量修改文件名称的方法
本文介绍基于Python语言,按照一定命名规则批量修改多个文件的文件名的方法. 已知现有一个文件夹,其中包括班级所有同学上交的作业文件,每人一份:所有作业文件命名格式统一,都是地信1701_姓 ...
随机推荐
- 14 STL-常用算法
重新系统学习c++语言,并将学习过程中的知识在这里抄录.总结.沉淀.同时希望对刷到的朋友有所帮助,一起加油哦! 每一次学习都是为了追求智慧! 写在前面,本篇章主要介绍STL中常用算法. 算法主要由 ...
- 【微服务架构设计实施】第一部分:架构篇-1:微服务架构与Spring Cloud介绍
〇.概述 一.微服务架构与Spring Cloud (一)概念 不同说法:细粒度的.清凉组件化的小型SOA(面向服务架构) 统一说法:小型应用程序(服务组件),使用轻量级设计方法和HTTP协议通信 理 ...
- VSCODE 中.art文件识别为html文件
setting.json文件中 { "git.ignoreMissingGitWarning": true, "explorer.confirmDelete": ...
- MIsc writeup
1. 杂项 图片里面有什么 ,附件为一张图片 通过Binwalk查看发现有压缩包,通过foremost分离一下. 打开输出文件,发现里面有两个图片. 00000000.png是原图,00000722. ...
- 「Docker学习系列教程」9-Docker容器数据卷介绍
通过前面8篇文章的学习,我们已经学会了docker的安装.docker常用的命令已经docker镜像修改后提交的远程镜像仓库及提交到公司的私服仓库中.接下来,我们再来学学Docker另外一个重要的东西 ...
- docker registry(私库)搭建,使用,WEB可视化管理部署
Docker Registry 是Docker官方一个镜像,可以用来储存和分发Docker镜像.目前比较流行的两个镜像私库是Docker Registry ,HarBor 其中HarBor最合适企业级 ...
- java下载网络文件的N种方式
java下载网络文件的N种方式 通过java api下载网络文件的方法有很多,主要方式有以下几种: 1.使用 common-io库下载文件,需要引入commons-io-2.6.jar public ...
- Springcloud源码学习笔记1—— Zuul网关原理
系列文章目录和关于我 源码基于 spring-cloud-netflix-zuul-2.2.6.RELEASE.jar 需要具备SpringMVC源码功底 推荐学习https://www.cnblog ...
- DVWA靶场实战(五)——File Upload
DVWA靶场实战(五) 五.File Upload: 1.漏洞原理: File Upload中文名叫做文件上传,文件上传漏洞是指用户上传了一个可执行脚本文件(php.jsp.xml.cer等文件),而 ...
- 树形 dp 与树上问题
NFLS 集训笔记 20220802 - 树形 dp 进阶与树上问题综合 \(\text{By DaiRuiChen007}\) I. 洛谷[P2585] - 三色二叉树 \(\text{Link}\ ...