我在网上找到了几个答案(编码,解码......),但我还是不知道该做什么。
我有一个名为abc的列表。
abc = ['sentence1','-1','sentence2','1','sentence3','0'...]
现在我想将此列表存储在CSV文件中,方法如下: sentence1,-1 第2句,第1句 第3句,第0页
我知道我的abc列表的格式可能不是应该如何实现这一点。我想它应该是列表清单?但主要的问题实际上是我不知道如何使用Python 3将其写入CSV文件。唯一有效的是,当每个字符被逗号分隔时。
有人知道如何解决这个问题吗?谢谢!
答案 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)
您可以使用zip
和join
创建新列表,然后写信至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