Python 3.4将列表写入csv [英] Python 3.4 writing a list to a csv
问题描述
我无法将列表写入csv。我当前的代码将列表(包括字符串)写入文件,在每个字符之间有空格。这是我正在使用的,问题最可能是在最后3或4行:
I am having trouble writing a list to a csv. My current code writes the list (comprised of strings) to the file with spaces between each character. This is what I'm working with, the problem is most likely in the last 3 or 4 lines:
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))
感谢您提供任何帮助。
推荐答案
writer.writerows()
(plural,with s
),取一个序列的序列;每个嵌套序列是一个有列的行。
writer.writerows()
(plural, with s
), takes a sequence of sequences; each nested sequence is a row with columns.
另一方面,你的集合不是这样的嵌套结构。使用生成器表达式生成一个生成器表达式:
Your set on the other hand, is not such a nested structure. Produce one with a generator expression:
with open (r'csv1.csv', 'w', newline='') as write_file:
write=csv.writer(write_file)
write.writerows([r] for r in c1)
这会生成每行一列的列表。由于只有一列,因此您将分隔符设置为
This produces lists with one column for each row. Since there is just the one column, it doesn't matter what you set the delimiter to.
这篇关于Python 3.4将列表写入csv的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!