python3 csv写入,Python 3.4将列表写入csv

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))

Thanks in advance for any help.

解决方案

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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值