2016-03-21 122 views
0

我遇到了Python的csv模块的问题。 确实,我有一个文本语料库。我已经将它转换成列表清单。例如,我的数据看起来像这样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]) 

是否有人理解我的问题吗?

非常感谢,

+0

为什么第二行最后一行有#号? – Muctadir

+0

@Muctadir,我猜测他们是'.writer()'的可选参数,他已经省略了测试,但是已经留在那里作为参考,或者如果他愿意,可以在后面添加它们。当我调试时我做同样的事情,我正在测试以查看我的其他参数是否是问题。 – SpencerD

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

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

+0

非常感谢!它现在运行良好;)确实这是我的循环问题。 –