在单个单元格中以列表的所有值写入CSV列表

时间:2018-01-26 15:10:32

标签: python python-2.7 csv

我有一个由多个列表组成的列表,可以在csv中导出

export_list = [['abc'],['1','2','3','4','5'],['m','n','o']]

我尝试使用csv

导出列表
outfile = open("./out.csv","wb")
writer = csv.writer(outfile)
writer.writerows(export_list)

但是输出来自下面显示的每个元素:

 abc  |   |  |   |    |   
    1 |2  |3 | 4 | 5  |   
    m |n  |o |   |    |

但我想将其格式化为像这样存储

list1 |     list2            |  list3           |
  abc |   1 2 3 4 5          |   m n o          |

实现这一目标的正确方法是什么? 注意:我使用的是Python 2.7

3 个答案:

答案 0 :(得分:0)

添加delimiter关键字

outfile = open("./out.csv","wb")
writer = csv.writer(outfile, delimiter=',')
writer.writerows(export_list)

另外,升级到python 3

这个确切的代码对我有用

import csv
export_list = [['abc'],['1','2','3','4','5'],['m','n','o']]
with open('test.csv','w',newline='') as cfile:
    cwrite=csv.writer(cfile,delimiter=',')
    cwrite.writerows(export_list)

test.csv就像这样

abc
1,2,3,4,5
m,n,o

答案 1 :(得分:0)

csv将子列表中的每个元素视为自己的列;要避免这种情况,请使用' '

加入元素
import csv
export_list = [['abc'],['1','2','3','4','5'],['m','n','o']]
with open('filename.csv', 'w') as f:
   write = csv.writer(f)
   write.writerows([[' '.join(i) for i in export_list]])

答案 2 :(得分:0)

所以我试图在相应的列中插入列表的所有值。

第一个答案是工作,但它填充了行中的数据。所以下面的代码帮助了我

cars = ['audi','bugati', 'mustang']
car_cell = ' '.join(cars)
bikes = ['bmw','ktm','ninja']
bike_cell = ' '.join(bikes)

with open('./output.csv', "w") as f:
    writer = csv.writer(f)
    writer.writerow(['List1','List2'])
    writer.writerow([car_cell, bike_cell])

这会以我预期的格式识别表格 join帮助将列表的所有元素连接到单个元素,writerow为每列编写一个列表。