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