Python 3.4将列表写入csv [英] Python 3.4 writing a list to a csv

查看:620
本文介绍了Python 3.4将列表写入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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆