Python,转换列表并写入CSV文件
我需要使用python写入一个csv文件,每个迭代器项都应该从一个新行开始。 所以我使用的分隔符是“\n”。 写入每个列表后,下一个列表应从下一个单元格写入。 如下图所示:Python,转换列表并写入CSV文件,python,list,csv,Python,List,Csv,我需要使用python写入一个csv文件,每个迭代器项都应该从一个新行开始。 所以我使用的分隔符是“\n”。 写入每个列表后,下一个列表应从下一个单元格写入。 如下图所示: lol = [[1,2,3],[4,5,6]] 1 2 3 4 5 6 1 4 2 5 3 6 csv将类似于: 1 4 2 5 3 6 我所尝试的: file = open("test.csv", "wb") fileWriter = csv.writer(file , delimiter='\n
lol = [[1,2,3],[4,5,6]]
1
2
3
4 5 6
1 4
2 5
3 6
csv将类似于:
1 4
2 5
3 6
我所尝试的:
file = open("test.csv", "wb")
fileWriter = csv.writer(file , delimiter='\n',quotechar='|', quoting=csv.QUOTE_MINIMAL)
spamWriter.writerow([1,2,3])
spamWriter = csv.writer(file , delimiter=',',quotechar='|', quoting=csv.QUOTE_MINIMAL)
spamWriter.writerow([4,5,6])
file.close()
其结果如下:
lol = [[1,2,3],[4,5,6]]
1
2
3
4 5 6
1 4
2 5
3 6
使用csv模块如何获得如下输出:
lol = [[1,2,3],[4,5,6]]
1
2
3
4 5 6
1 4
2 5
3 6
此处空格表示csv文件中的逗号
谢谢。首先使用
zip()
然后把它传给csw.writer
with open("test.csv", "wb") as f:
fileWriter = csv.writer(f, delimiter=',',quotechar='|', quoting=csv.QUOTE_MINIMAL)
for row in zip(*lol):
fileWriter.writerow(row)
。。。其结果是:
$ cat test.csv
1,4
2,5
3,6
不使用zip,您可以执行以下操作:
import csv
lol = [[1,2,3],[4,5,6],[7,8,9]]
item_length = len(lol[0])
with open('test.csv', 'wb') as test_file:
file_writer = csv.writer(test_file)
for i in range(item_length):
file_writer.writerow([x[i] for x in lol])
这将输出到test.csv:
1,4,7
2,5,8
3,6,9
如果您使用的是Python3,您需要以文本格式“wt”打开文件,更多的
csv
具有writerows
,可用于一次写入所有内容。以下是一个例子:
data=[("test", "value1", "value2"), ("test2", "value3", "value4")]
with open('my.csv','wt') as out:
csv_out=csv.writer(out)
csv_out.writerows(data)
我刚刚注意到,问题是如何转换列表,这是一个单独的步骤,下面是我将如何做:
lol = [[1,2,3],[4,5,6]]
data = zip(lol[0],lol[1])
它以[and]字符写入我认为您应该将write属性改为
w
,而不是wb
,然后这个答案就可以完美地工作了。。