当前我有一个填充列表
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
。
答案 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)