Python中使用docxcompose库批量合并多个Word文档文件并逐页添加分页符
Python中使用docxcompose库批量合并多个Word文档文件并逐页添加分页符合并文件是经常会遇到的需求。对于 Word 文件(DOCX格式),使用软件操作需要进行复制、粘贴, 说起来虽然简单,但是遇到大文件时,可能会出现无响应的问题。 尤其是文件多了之后,重复的操作也会非常无聊且易出错。通过 python-docx 模块可以读取并写出 docx 格式的文档, 理论上可以用来使用 DOCX 文件。 但是实际使用时可能会遇到各种问题,经常导致生成的结果无法打开。
使用第三方库,将多个word文档合并为一个,并且格式不发生变化。我们利用Python的docxcompose库,这是一个用于组合 Microsoft Word(.docx)文件的第三方库,使用起来非常方便。
这个实例内需要使用另一个库 docxcompose 来完成演示。
– docxcompose 方法
– 特点:专门用于合并 Word 文档,保留复杂格式,顺序合并,易集成。
– 适用场景:需保留详细格式和布局元素。
– 安装:`pip install docxcompose`
– 示例代码:使用`Composer`类进行合并,可添加页分隔。
import os
from docx import Document
from docxcompose.composer import Composer
from docx.enum.section import WD_SECTION# 新增:导入分节符枚举
# 定义目录路径
base_dir = r'D:\Word文档合并工具\trae_docxcompose'
output_path = os.path.join(base_dir, "activity_name.docx")
# 筛选当前目录下的.docx文件
all_docx_files = []
for file_name in os.listdir(base_dir):
if file_name.lower().endswith('.docx'):
file_path = os.path.join(base_dir, file_name)
all_docx_files.append(file_path)
if not all_docx_files:
print("错误:目录下未找到任何.docx文件")
exit()
# 初始化合并器(使用第一个文档作为基础)
first_doc = Document(all_docx_files)
composer = Composer(first_doc)
# 合并后续文档(每个文档前添加分页符)
for doc_path in all_docx_files:
# 关键修改:在当前文档前添加分节符(强制新页面)
# 通过添加"新页面"分节符确保后续内容从新页开始
new_section = first_doc.add_section(WD_SECTION.NEW_PAGE)
# 加载当前文档并合并
current_doc = Document(doc_path)
composer.append(current_doc)
# 保存合并结果
composer.save(output_path)
print(f"合并完成!输出路径:{output_path}")使用 Python 进行合并是非常简单的,在word软件里也提供了合并的功能,但是没有使用 Python 这么方便快捷。
参考:https://www.osgeo.cn/python-tutorial/docx-docxcompose.html
页:
[1]