使用read()和write()合并多个word docx失败

时间:2018-12-10 07:04:34

标签: python

我希望使用读写方法将两个word文档合并到另一个文档中,但是它只能成功写入f1 word文档的内容。编写f2字词doc不起作用。我尝试了以下方法:

# coding=utf-8
f=open('C:\Users\Desktop\word.doc','ab')
f1=open('C:\Users\Desktop\word1.doc','rb')
f2=open('C:\Users\Desktop\word2.doc','rb')
data1=f1.read()
data2=f2.read()
f.write(data1)
f.write(data2)
f1.close()
f2.close()
f.close()

2 个答案:

答案 0 :(得分:1)

Microsoft Word document format不仅仅是纯文本。简单地串联两个文档根本不起作用,这就是您有效的做法。

以DOCX格式连接两个文档的正确方法是使用适当的模块打开它们-例如python-docx(或docx)-理解文档的内部结构(这是一个包含大量XML文件的zip压缩文件夹,您可以自行检查扩展名和解压缩内容)。< / p>

食谱how to concatenate two Word documents应该很有帮助。

答案 1 :(得分:0)

非常感谢,索菲罗斯!我用下面的代码。它确实可以合并两个文档,但是仍然存在一些问题。它无法复制表格和图片。 enter image description here

# coding=utf-8

从docx导入文档

文件= ['C:\ Users \ lenovo \ Desktop \ word1.docx','C:\ Users \ lenovo \ Desktop \ word2.docx']

def Combine_word_documents(文件):     merged_document = Document()

for index, file in enumerate(files):
    sub_doc = Document(file)

    # Don't add a page break if you've reached the last file.
    if index < len(files)-1:
       sub_doc.add_page_break()

    for element in sub_doc.element.body:
        merged_document.element.body.append(element)

merged_document.save('C:\\Users\\lenovo\\Desktop\\merged.docx')

combine_word_documents(文件)