Python 3.4将列表写入csv

时间:2014-07-29 18:40:31

标签: python csv python-3.x

我无法将列表写入csv。我当前的代码将列表(由字符串组成)写入文件,每个字符之间有空格。这就是我正在使用的问题,问题最有可能发生在最后3或4行:

import csv
import sys
import collections

c1 = set()
c2 = set()
c3 = set()

new=(r'file')
old=(r'file2')

with open(new, 'r') as newfile:
    newreader = csv.reader(newfile, delimiter=(','))
    for row in newreader:
        c1.add(row[0])

with open(old, 'r') as oldfile:
    oldreader = csv.reader(oldfile, delimiter=(','))
    for row in oldreader:
        c2.add(row[0])

c3=c2-c1
c1=c2|c3
print(c1)
print(c2)
print(c3)

with open (r'csv1.csv', 'w', newline='') as write_file:
    write=csv.writer(write_file, delimiter=' ')

    write.writerows(list(c1))

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

writer.writerows()(复数,带s),采用序列序列;每个嵌套序列都是一列,包含列。

另一方面,你的设置不是这样的嵌套结构。使用生成器表达式生成一个:

with open (r'csv1.csv', 'w', newline='') as write_file:
    write=csv.writer(write_file)
    write.writerows([r] for r in c1)

这会生成每行有一列的列表。由于只有一列,因此将分隔符设置为什么并不重要。

相关问题