合并文件是经常会遇到的需求。对于 Word 文件(DOCX格式),使用软件操作需要进行复制、粘贴, 说起来虽然简单,但是遇到大文件时,可能会出现无响应的问题。 尤其是文件多了之后,重复的操作也会非常无聊且易出错。
通过 python-docx 模块可以读取并写出 docx 格式的文档,
理论上可以用来使用 DOCX 文件。
但是实际使用时可能会遇到各种问题,经常导致生成的结果无法打开。
因此实例内需要使用另一个库 docxcompose
来完成演示。
pip install docxcompose
在 Debian 12 中,可以使用下面命令安装:
sudo apt install python3-docxcompose/
from pathlib import Path
from docxcompose.composer import Composer
from docx import Document
--------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) Cell In[2], line 2 1 from pathlib import Path ----> 2 from docxcompose.composer import Composer 3 from docx import Document ModuleNotFoundError: No module named 'docxcompose'
获取要处理的word文档,放在一个列表内。
result=[]
# for uu in Path('./old').rglob('*.docx'):
for uu in Path('./xx_to_merge').rglob('*.docx'):
result.append(uu.resolve())
print(result)
创建composer
对象,准备合并。
filename_master=result[0]
files_list=result
number_of_sections=len(files_list)
master = Document(filename_master)
composer = Composer(master)
在文档的末尾要加上一个分页符,如果不加,可能排版的格式会发生混乱。 这样就可以避免,再合并文档后可以将文档转化为PDF格式。
for i in range(1, number_of_sections):
doc_temp = Document(files_list[i])
doc_temp.add_page_break()
composer.append(doc_temp)
composer.save("xx_merged.docx")