乐于分享
好东西不私藏

别再复制粘贴!Python帮你把多份Word文档瞬间“合多为一”

本文最后更新于2026-03-10,某些文章具有时效性,若有错误或已失效,请在下方留言或联系老夜

别再复制粘贴!Python帮你把多份Word文档瞬间“合多为一”

关注我,学习更多实用Python知识

🌈Hi,小伙伴们~

🛠️ 这些不断复制粘贴,你有遇到过吗?

📄 年终总结:各部门的报告,要合成一本

📇 招标文件:标书、规格书等不同文档需按序合并

💰 合同归档:每月几百份Word要按日期汇总

🏆 书籍排版:不同章内容要手动合并成完整书稿

🎯今天,以 「一键批量合并多个Word文档」 为例,用Python让你从文档搬运工变身效率达人

🛠️ 项目需求

📄 批量合并Word文档,按需生成合集

 ①自动读取:遍历指定文件夹,支持.docx格式

✅ ②智能排序:按文件名或自定义顺序合并

 ③精准控制:每个文档间自动插入分节符或分页符

 ④一键生成:将合并后的完整文档保存到指定位置

📊 效果示意图:

📁 各章节文稿/                 →    📄 完整书稿.docx├── 01-第一章.docx                ├── 第一章内容...├── 02-第二章.docx                ├── (分页符)├── 03-第三章.docx                ├── 第二章内容...└── ...(直到第N章).docx            └── ... (所有内容按序合并)

🛠️ 准备工作(代码执行前)

1️⃣ 整理待合并文档📂

将所有需要合并的Word文档放入同一个文件夹,建议按合并顺序命名,例如:01_概述.docx02_需求分析.docx03_技术方案.docx,程序将按文件名排序处理

2️⃣ 明确合并规则

你需要决定文档之间的衔接方式:

选项
效果
适用场景
直接连续
前一文档结束,后一文档紧接着开始
内容连贯的报告、论文
插入分页符
每个文档从新的一页开始
书籍章节、独立板块
插入分节符
允许下一章节拥有独立的页眉页脚或页码
格式复杂的正式文档

3️⃣ 安装Python库

打开终端,输入以下命令:

pip install python-docx

✅ 库简介python-docx 是读写Word(.docx)文件的利器,能完美读写段落、表格、图片、页眉页脚等所有元素

⚙️ 代码实现

💡 核心思路:

①创建一个新的空白Word文档作为“容器”
②按顺序读取源文件夹中的每个文档
③将源文档的每一个元素逐个添加到新文档中
④在文档间插入分页符
⑤自动保存合并后的文档

📝 完整代码示例:

import osfrom docx import Documentfrom docx.enum.text import WD_BREAKdefmerge_word_docs(source_folder, output_filename, add_page_break=True):"""    批量合并指定文件夹下的所有Word文档    :param source_folder: 存放待合并文档的文件夹路径    :param output_filename: 输出合并后文档的文件名    :param add_page_break: 是否在文档间插入分页符    """# 1. 创建一个主文档    merged_doc = Document()# 2. 获取文件夹下所有docx文件,并按名称排序    docx_files = [f for f in os.listdir(source_folder) if f.endswith('.docx')]    docx_files.sort()  # 关键!确保按顺序合并ifnot docx_files:        print("文件夹中没有找到 .docx 文件")return    print(f"🔍 找到 {len(docx_files)} 个文档,开始合并...")# 3. 遍历每个文档for i, filename in enumerate(docx_files):        file_path = os.path.join(source_folder, filename)        print(f"  正在处理: {filename}")# 打开当前文档        doc = Document(file_path)# 4. 将当前文档的所有元素添加到主文档# 处理段落for para in doc.paragraphs:# 创建一个新段落,并复制原段落的样式和文本            new_para = merged_doc.add_paragraph()            new_para.paragraph_format.alignment = para.paragraph_format.alignment            new_para.style = para.stylefor run in para.runs:                new_run = new_para.add_run(run.text)# 复制文字样式                new_run.bold = run.bold                new_run.italic = run.italic                new_run.underline = run.underline                new_run.font.name = run.font.name                new_run.font.size = run.font.size# ... 可以继续复制其他样式# 处理表格for table in doc.tables:# 这里需要更复杂的表格复制逻辑,为简化示例,先跳过# 实际应用中可遍历行列创建新表格pass# 5. 如果不是最后一个文档,且需要插入分页符if add_page_break and i < len(docx_files) - 1:            merged_doc.add_page_break()# 6. 保存合并后的文档    output_path = os.path.join(source_folder, output_filename)    merged_doc.save(output_path)    print(f"\n 合并完成!文件已保存为: {output_path}")# 程序入口if __name__ == "__main__":# 设置你的文件夹路径    folder = "待合并文档"# 将此路径替换为你的文件夹    merge_word_docs(folder, "合并后的完整文档.docx", add_page_break=True)

⚡运行效果

如上面例的文档,代码运行后:

后成1个文档如下:

章节间自动分页,合并成了一整份!

⚠️ 代码小贴士:

图片处理:如需保留图片,需遍历doc.part.rels复制图片文件

样式保留:直接复制run对象是保留格式的最保险方式

性能优化:合并超100个文档时,建议分批处理避免内存溢出

⚡  效率提升看得见

🧩 传统方式:手工复制粘贴 + 调整格式 ≈ 2小时/100份

🧩 使用脚本:一键自动合并 ≈ 30秒/100份

✅ 准确率100%,省下时间做更有价值的事!

📌 结语

💡 关注我,每周分享Python干货×技巧

📌 如果这篇文章对你有帮助,欢迎:

👍 点赞 | ⭐ 收藏 | 🔄 分享给朋友

💬 如需源码:关注+评论区回复多个word自动合并

即可获取完整脚本 + 示例模板!

👇点击阅读往期文章

1.“摸鱼”新技能!用Python让Word自动干活,我喝茶它加班
2.要用 Python 爬虫,这些基础知识你一定要懂!
3.手把手教你 “ 爬取小红书评论内容 ”,0基础也能上手的 Python 爬虫实战!
4.告别手敲界面!用Qt Designer”拖拉拽”搞定Python GUI
5.超7000万次下载!Python自动化神器PyAutoGUI,助你轻松准时下班!
6.告别命令行,可视化的打包” 神器 “!轻松让 Python 程序转 EXE
7.用3分钟学会 Python 自动发邮件,定时推送+各种附件一劳永逸!
8.企业微信自动发送图文、文件、音视频 Python 实现指南

9.Pandas +Excel:数据筛选、VLOOKUP、透视、公式、绘图 一个案例全搞定

10.Python 生成二维码:自定义背景、Logo 与样式,批量生成超实用案例!

11.贵金属板块大涨大跌!如何用Python快速获取湖南白银行情?
12.Python抓取摄像头图像,进行AI识别(四):AI火焰自动预警的实现

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 别再复制粘贴!Python帮你把多份Word文档瞬间“合多为一”

猜你喜欢

  • 暂无文章

评论 抢沙发

7 + 3 =