2016-03-21 165 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

非常感謝!它現在運行良好;)確實這是我的循環問題。 –