迭代将Python List输出附加到excel中的行

时间:2017-07-10 12:55:27

标签: excel python-3.x

enter image description here

作为我的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打开doc,我知道我需要使用append()操作,但我很难将列表保存为行。我是新来的。请帮助我使用语法!我理解逻辑,但语法有困难! 谢谢!

1 个答案:

答案 0 :(得分:1)

既然你说你愿意使用csv格式,我会展示一个csv解决方案。

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')