2016-03-21 14 views
0

Pythonのcsvモジュールで問題が発生しました。 実際、私はテキストのコーパスを持っています。私はそれをリストのリストのように見える形に変形しました。例えば、私のデータは、私はcsvファイルまたはテキストファイルにデータをエクスポートするこのcsvへのリストのリスト?

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

のように見えます。

csvモジュールの.writerow()メソッドを使用すると、コーパスの1つのリストのみが返されますが、理由はわかりません(コーパスの最初のものさえも...)

ここで

私のコードは

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

2番目の最後の行に#があるのはなぜですか? – 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

ありがとう!今はうまくいく;)実際、私のループには問題があった。 –