You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python将zip配对的两个列表写入docx仅保留单条数据问题求解

你的代码存在两处逻辑错误,导致旧内容被不断覆盖,仅保留最后一次写入的结果:

  • 把Document()实例化操作写在了for循环内部:每次循环都会创建一个全新的空白文档对象,之前循环添加的内容不会被保留在新对象里
  • 把save()保存操作也写在了for循环内部:每次循环都会直接用当前只有单条内容的文档覆盖原文件,之前的保存结果直接被替换

正确写法(每次运行新建完整文档)

from docx import Document

john = [...]
jake = [...]       

# 初始化文档对象放在循环外,全程只创建一次
document = Document()
for a,b in zip(john, jake):
    document.add_paragraph(f"{a}---------------{b} \n")
# 所有内容全部添加完成后,只执行一次保存
document.save("docxpy.docx")

追加写入已有文档的写法

如果你需要的是每次运行代码都往已存在的docxpy.docx里追加新内容,而非每次新建整个文档,可以用以下写法:

from docx import Document
import os

john = [...]
jake = [...]       

file_path = "docxpy.docx"
# 存在就读取已有文档,不存在就新建
if os.path.exists(file_path):
    document = Document(file_path)
else:
    document = Document()

for a,b in zip(john, jake):
    document.add_paragraph(f"{a}---------------{b} \n")

document.save(file_path)

内容的提问来源于stack exchange,提问作者eyup.tatar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 02:57:03