在Excel中迭代附加Python列表输出到行

在这里输入图像说明

作为我的python代码的输出,我每次运行程序时都会得到Randy和Shaw的标记。 我每个月都有几次运行这个程序多年。 我将它们的标记存储在Python中的列表中。 但是如何将其保存为以下格式? 我得到以下格式的输出[连续输出两个不同的人]

import pandas from openpyxl import load_workbook #These lists I am getting from a very complicated code so just creating new lists here L1=('7/6/2016', 24,24,13) L2=('5/8/2016', 25,24,16) L3=('7/6/2016', 21,16,19) L4=('5/8/2016', 23,24,21) L5=('4/11/2016', 13, 12,17) print('Randy's grades') print(L1) print(L2) print(L3) print('Shaw's grades') print(L4) print(L5) book = load_workbook('C:/Users/Desktop/Masterfile.xlsx') writer = pandas.ExcelWriter('Masterfile.xlsx', engine='openpyxl') Output at run no 1: For Randy 7/6/2016, 24,24,13 5/8/2016, 25,24,16 For Shaw 7/6/2016, 21,16,19 5/8/2016, 23,24,21 4/11/2016, 13, 12,17 Output at run no 2: For Randy 7/8/2016, 24,24,13 5/9/2016, 25,24,16 For Shaw 7/8/2016, 21,16,19 5/9/2016, 23,24,21 

我将有许多这样的输出运行几年,所以我想通过追加在同一个文件中保存数据。

我使用OpenPyxl打开文档,我知道我需要使用append()操作,但我很难将列表保存为行。 我刚来这地方。 请帮助我的语法!我理解的逻辑,但语法的困难! 谢谢!

既然你说你愿意使用csv格式,我会显示一个csv的解决scheme。

 with open('FileToWriteTo.csv', 'w') as outFile: outFile.write(','.join([str(item) for item in L1])) # Take everything in L1 and put commas between them then write to file outFile.write('\n') # Write newline outFile.write(','.join([str(item) for item in L2])) outFile.write('\n') outFile.write(','.join([str(item) for item in L3])) outFile.write('\n') outFile.write(','.join([str(item) for item in L4])) outFile.write('\n') outFile.write(','.join([str(item) for item in L5])) outFile.write('\n') 

如果您保留列表而不是单独列表,使用for循环会变得更容易:

 with open('FileToWriteTo.csv', 'w') as outFile: for row in listOfLists: outFile.write(','.join([str(item) for item in row])) outFile.write('\n')