2016-07-08 9 views
1

私はidを含む簡単なコマンドラインプログラムを書いています。私は関数を実行するたびにCSVファイルに値を追加するようにしたいと思います。私は働いていると思った機能を作ったが、明らかにそうではなかった。Python forループが実行されていない

file = open(ID_FILE_PATH, 'wb+') 

According to the documentation:ところで私の悪い英語のための

def addId(id): 
    file = open(ID_FILE_PATH, 'wb+') 
    read = csv.reader(file) 
    write = csv.writer(file) 

    existingRows = [] 
    existingRows.append(id) 

    for rows in read: # This does not run 
     print rows 
     if len(rows) > 0 and rows[0] not in existingRows: 
      existingRows.append(rows[0]) 

    for rows in existingRows: # This runs 
     write.writerow([rows]) 

    file.close() 

申し訳ありませんがあなたがして、ファイルを開く

+0

問題はほとんどの場合、同じファイルオブジェクト上にcsv.readerとcsv.writerの両方を開いている可能性があります。同様の質問[ここ](http://stackoverflow.com/questions/14978575/writing-reading-the-same-csv-file-in-python)を参照してください。 –

+1

また、組み込みのデータ型であるため、変数に 'file'という名前を付けないでください。 – xgord

答えて

2

を。(ここに私のコードです。私のためのループの1つが正常に実行されていません

「w +」はファイルを切り捨てます。

ファイルを切り捨てるので、読み込むことはありません。代わりにrb+を使用してください。

+0

これはうまくいきました、ありがとうございました! –

関連する問題