我在将列表写入 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))
预先感谢您的帮助。
最佳答案
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)
这会生成每行一列的列表。由于只有一列,因此将分隔符设置为什么并不重要。
关于Python 3.4 将列表写入 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25022677/