- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
本文介绍基于 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文件同时添加分页符的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我想了解 Ruby 方法 methods() 是如何工作的。 我尝试使用“ruby 方法”在 Google 上搜索,但这不是我需要的。 我也看过 ruby-doc.org,但我没有找到这种方法。
Test 方法 对指定的字符串执行一个正则表达式搜索,并返回一个 Boolean 值指示是否找到匹配的模式。 object.Test(string) 参数 object 必选项。总是一个
Replace 方法 替换在正则表达式查找中找到的文本。 object.Replace(string1, string2) 参数 object 必选项。总是一个 RegExp 对象的名称。
Raise 方法 生成运行时错误 object.Raise(number, source, description, helpfile, helpcontext) 参数 object 应为
Execute 方法 对指定的字符串执行正则表达式搜索。 object.Execute(string) 参数 object 必选项。总是一个 RegExp 对象的名称。 string
Clear 方法 清除 Err 对象的所有属性设置。 object.Clear object 应为 Err 对象的名称。 说明 在错误处理后,使用 Clear 显式地清除 Err 对象。此
CopyFile 方法 将一个或多个文件从某位置复制到另一位置。 object.CopyFile source, destination[, overwrite] 参数 object 必选
Copy 方法 将指定的文件或文件夹从某位置复制到另一位置。 object.Copy destination[, overwrite] 参数 object 必选项。应为 File 或 F
Close 方法 关闭打开的 TextStream 文件。 object.Close object 应为 TextStream 对象的名称。 说明 下面例子举例说明如何使用 Close 方
BuildPath 方法 向现有路径后添加名称。 object.BuildPath(path, name) 参数 object 必选项。应为 FileSystemObject 对象的名称
GetFolder 方法 返回与指定的路径中某文件夹相应的 Folder 对象。 object.GetFolder(folderspec) 参数 object 必选项。应为 FileSy
GetFileName 方法 返回指定路径(不是指定驱动器路径部分)的最后一个文件或文件夹。 object.GetFileName(pathspec) 参数 object 必选项。应为
GetFile 方法 返回与指定路径中某文件相应的 File 对象。 object.GetFile(filespec) 参数 object 必选项。应为 FileSystemObject
GetExtensionName 方法 返回字符串,该字符串包含路径最后一个组成部分的扩展名。 object.GetExtensionName(path) 参数 object 必选项。应
GetDriveName 方法 返回包含指定路径中驱动器名的字符串。 object.GetDriveName(path) 参数 object 必选项。应为 FileSystemObjec
GetDrive 方法 返回与指定的路径中驱动器相对应的 Drive 对象。 object.GetDrive drivespec 参数 object 必选项。应为 FileSystemO
GetBaseName 方法 返回字符串,其中包含文件的基本名 (不带扩展名), 或者提供的路径说明中的文件夹。 object.GetBaseName(path) 参数 object 必
GetAbsolutePathName 方法 从提供的指定路径中返回完整且含义明确的路径。 object.GetAbsolutePathName(pathspec) 参数 object
FolderExists 方法 如果指定的文件夹存在,则返回 True;否则返回 False。 object.FolderExists(folderspec) 参数 object 必选项
FileExists 方法 如果指定的文件存在返回 True;否则返回 False。 object.FileExists(filespec) 参数 object 必选项。应为 FileS
我是一名优秀的程序员,十分优秀!