简体   繁体   English

Python 3.4将列表写入CSV

[英]Python 3.4 writing a list to a csv

I am having trouble writing a list to a csv. 我在将列表写到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: 这是我正在使用的,问题很可能在最后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))

Thanks in advance for any help. 在此先感谢您的帮助。

writer.writerows() (plural, with s ), takes a sequence of sequences ; writer.writerows() (复数,带s ),采用序列序列 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. 由于只有一列,因此将分隔符设置为什么都无所谓。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM