第一步:
直接明了的提出你的要求:

from docx import Document
# 用于合并的多个Word文档的文件名列表
doc_files = ['file1.docx', 'file2.docx', 'file3.docx']
# 创建新的Word文档
merged_doc = Document()
# 循环读取每个Word文档,并将其内容添加到合并后的文档中
for file in doc_files:
doc = Document(file)
for para in doc.paragraphs:
merged_doc.add_paragraph(para.text)
for table in doc.tables:
merged_doc.add_table(table)
# 将合并后的文档保存到文件中
merged_doc.save('merged.docx')
以上代码首先创建一个新的Word文档对象merged_doc,然后循环读取每个要合并的Word文档,将其段落和表格添加到merged_doc文档对象中。最后,将合并后的文档保存到新的文件merged.docx中。
第二步:debug
不出意料,报错了:

其实回答不够准确,但给出了方向提示。深究下去其实是docx库版本太低,但无法通过pip upgrade升级,不过GPT也耐心的给出了方法:

本质原因是docx旧版本叫docx,新版本叫python-docx,安装后这个问题就过了。
第三步:调教GPT
merged_doc.add_table(table)报错
TypeError: add_table() missing 1 required positional argument: 'cols'




修改后的代码
from docx import Document
from docx.shared import Inches
doc_files = ['file1.docx', 'file2.docx', 'file3.docx']
merged_doc = Document()
for file in doc_files:
file = 'C:/Users/link.USR/PycharmProjects/keypress/venv/tcl/pdf2combine/' + file
doc = Document(file)
# Add a paragraph break between documents
merged_doc.add_paragraph()
# Copy each paragraph from the source document
for para in doc.paragraphs:
merged_doc.add_paragraph(para.text)
# Copy each table from the source document
for table in doc.tables:
rows = len(table.rows)
cols = len(table.columns)
merged_table = merged_doc.add_table(rows=rows, cols=cols)
for i, row in enumerate(table.rows):
for j, cell in enumerate(row.cells):
merged_table.cell(i, j).text = cell.text
merged_table.cell(i, j).width = cell.width
merged_doc.save('merged.docx')
可以看到GPT成长了,改进了之前我提出的错误,不过该代码只能合并文字和表格,不能合并图片,还需要继续改进。