列表列表到csv?

时间:2016-03-21 21:08:21

标签: python csv text

我遇到了Python的csv模块的问题。 实际上,我有一个文本语料库。我已将其转换为看似列表的列表。例如,我的数据看起来像这样

data = ["Hello", "how", "are", "you"]
["Fine", "and" ,"you"]

我想将数据导出到csv文件或文本文件。

然而,当我使用csv模块的.writerow()方法时,它只返回一个语料库列表,我不明白为什么(它甚至不是语料库的第一个......)

这是我的代码

import csv
with open('twitter_test_python.csv',"r", encoding='utf8') as csvfile:
    spamreader = csv.reader(csvfile , delimiter=" ", quotechar = "'")
    for line in spamreader:
        test = list(set(line) - set(swl))
        with open("test2.csv", 'w', encoding = 'utf8') as myfile :
            wr = csv.writer(myfile)#, delimiter=';', quoting=csv.QUOTE_ALL, lineterminator = '\n') 
            wr.writerow([test])

有人理解我的问题吗?

非常感谢,

1 个答案:

答案 0 :(得分:2)

每次循环时都会覆盖文件:

for line in spamreader():

尝试在循环外移动输出文件的开头:

import csv
with open('twitter_test_python.csv',"r", encoding='utf8') as csvfile:
    spamreader = csv.reader(csvfile , delimiter=" ", quotechar = "'")
    with open("test2.csv", 'w', encoding = 'utf8') as myfile :
        wr = csv.writer(myfile)#, delimiter=';', quoting=csv.QUOTE_ALL, lineterminator = '\n')
        for line in spamreader:
            test = list(set(line) - set(swl)) 
            wr.writerow([test])

这样你就不会打开输出文件并每次都覆盖它。