python 将两个压缩列表附加到 docx 文件中
python append two zipped lists into docx file
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请字体笑话我
试试这个:
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
方法调用放在循环之后。这不是绝对必要的(你会注意到你会得到相同的结果),但它节省了 time/resources 因为你只需要在最后添加所有段落后将文件写入磁盘一次。
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请字体笑话我
试试这个:
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
方法调用放在循环之后。这不是绝对必要的(你会注意到你会得到相同的结果),但它节省了 time/resources 因为你只需要在最后添加所有段落后将文件写入磁盘一次。