如何将列表变成csv中的列?

时间:2018-11-24 01:27:53

标签: python list csv

当前我有一个填充列表

list =[a, b, c, d]

我想将列表的内容转换为一个csvfile,并使列表的所有元素都为一列。这是我当前的代码:

with open('twitter3.csv', 'w+') as csvfile:
    writer = csv.writer(csvfile, dialect='excel')
    writer.writerow(list)

输出的csv文件包含列表的元素,但正如该方法所暗示的,它已在第一行中写入了所有内容。

我尝试制作一个for循环来写入每个element + \n,但是writerow方法存在一个问题(每个字母后都加逗号),并且没有writecolumn方法csvwriter

4 个答案:

答案 0 :(得分:1)

要执行此任务,我将使用pandas软件包,如下所示:

import pandas as pd
l=["a","b","c","d"]
df=pd.DataFrame(l,index=False,header=False)
df.to_csv("twitter3.csv")

pandas也非常适合阅读csv,甚至可以处理Excel文件。

答案 1 :(得分:0)

您可以通过以下操作来实现:将列表中的元素合并为一个字符串,并使用新行字符'\n\r'作为分隔符,然后将整个字符串写入文件中。

例如:

my_list = [a, b, c, d]

with open("twitter3.csv", "w+") as csvfile:
    to_write = "\n\r".join(my_list)
    csvfile.write(to_write)

'\n'也有效)

答案 2 :(得分:0)

这是我想到的最简单的方法:

import csv

my_list = ['a', 'b', 'c', 'd']

with open('twitter3.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile, dialect='excel')
    writer.writerows(tuple(item) for item in my_list)

请注意,我将您的列表变量的名称更改为my_list,因此它不会与内置的list类冲突。

答案 3 :(得分:-1)

我将所有代码放在一个地方,以便可以复制和测试它。

import csv

# Should not use 'list' as variable
lst =['a', 'b', 'c', 'd']

# newline='' prevent additional new lines in file
with open('twitter3.csv', 'w+', newline='') as csvfile:
  writer = csv.writer(csvfile, dialect='excel')
  for l in lst:
    writer.writerow(l)