Python 3:将字符串列表写入csv文件

时间:2015-03-06 11:15:21

标签: csv python-3.x

我在网上找到了几个答案(编码,解码......),但我还是不知道该做什么。

我有一个名为abc的列表。

abc = ['sentence1','-1','sentence2','1','sentence3','0'...]

现在我想将此列表存储在CSV文件中,方法如下: sentence1,-1 第2句,第1句 第3句,第0页

我知道我的abc列表的格式可能不是应该如何实现这一点。我想它应该是列表清单?但主要的问题实际上是我不知道如何使用Python 3将其写入CSV文件。唯一有效的是,当每个字符被逗号分隔时。

有人知道如何解决这个问题吗?谢谢!

2 个答案:

答案 0 :(得分:0)

Here是处理文件的文档,CSV与txt基本相同,不同之处在于您应该使用逗号将列和新行分隔为行。

在您的示例中,您可以执行此操作(或迭代循环):

formated_to_csv = abc[0]+','+abc[1]+','+abc[2]+','+abc[3]...

formated_to_csv 的值将是'sentence1,-1,sentence2,1,sentence3,0'..注意这是一个字符串,所以它会生成一行,然后将 formated_to_csv 写为csv文件中的文本:

f.write(formated_to_csv)

要将所有句子放在第一列,将所有数字放在第二列,最好有一个列表列表:

abc = [['sentence1','-1'],['sentence2','1'],['sentence3','0']...]

for row in abc:
   f.write(row[0]+','+row[1])

表格的“转换”将由excel,calc或用于阅读电子表格的任何程序完成。

答案 1 :(得分:0)

您可以使用zipjoin创建新列表,然后写信至csv

abc=['sentence1', '-1', 'sentence2', '1', 'sentence3', '0', 'sentence4']

new=[(abc[0],)]+[(''.join(i),) for i in zip(abc[1::2],abc[2::2])]

import csv
with open('test.csv', 'w', newline='') as fp:
    a = csv.writer(fp, delimiter=',')
    a.writerows(new)

结果:

sentence1
-1sentence2
1sentence3
0sentence4