【问题标题】:python append two zipped lists into docx filepython将两个压缩列表附加到docx文件中
【发布时间】:2021-10-18 18:27:18
【问题描述】:
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 新手,请字体取笑我

【问题讨论】:

    标签: python for-loop zip docx f-string


    【解决方案1】:

    试试这个:

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

    【讨论】:

      猜你喜欢
      • 2013-08-16
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      • 2018-06-03
      • 2021-03-17
      • 2011-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多