首页 > 解决方案 > python将两个压缩列表附加到docx文件中

问题描述

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

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

我有两个列表,想将它们的值作为“a----------------b”附加到“docxpy.docx”文件中。但每次它只附加其中一个。我是 python 新手,请字体取笑我

标签: pythonfor-loopzipdocxf-string

解决方案


试试这个:

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

document = Document() # this needs to be before the for loop

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

document.save("docxpy.docx") # this should come after the for loop

问题是您document在循环内进行了初始化,这意味着每次迭代都document使用空Document()对象重新初始化。结果,在循环的最后一次迭代中,您最终得到一个仅包含最后一对 的文档a,b,这就是为什么您在输出文档中只看到一行的原因。在 for 循环之前初始化document变量应该可以解决问题。

此外,您应该将save方法调用放在循环之后。这不是绝对必要的(您会注意到无论哪种方式都得到相同的结果),但它可以节省时间/资源,因为一旦添加了所有段落,您只需在最后将文件写入磁盘一次。


推荐阅读