2017-09-15 96 views
1

我正试图将数据写入excel,其中每个列表位于不同的列中。到目前为止,我已经能够将数据放入csv文件的不同列中,但是当我在Excel中打开它时,它会将所有数据写入同一列。我至今:Python将行和列写入Excel

import csv 

list1 = [1,2,3,4,5,6] 
list2 = ['a','b','c','d','e','f'] 
list3 = ['G','H','I','J','K','L'] 


b = open('lists.csv','a') 
a = csv.writer(b) 

rows = zip(list1,list2,list3) 


for row in rows: 
    print(row) 
    a.writerow([row]) 

b.close() 

当前结果:current outcome

预期的结果:expected outcome

回答

0

row已经是一个元组,这样你就不必把它变成一个列表,可以只写a.writerow(row)

另外两个提示:使用with声明打开文件,然后文件将自动关闭。

当您打开该文件时,通过newline=''以避免空行。

import csv 

list1 = [1,2,3,4,5,6] 
list2 = ['a','b','c','d','e','f'] 
list3 = ['G','H','I','J','K','L'] 

with open('lists.csv', 'a', newline='') as csv_file: 
    writer = csv.writer(csv_file) 
    for row in zip(list1, list2, list3): 
     writer.writerow(row)