2017-03-15 3 views
0

私はPythonを初めて使いました。私は自分のコードがcsv行を1行(大きなファイル)で読み込み、その後に実験IDが特定の番号であれば、その行をcsvに書き込みたいと思っていました。問題は、最初のインスタンスのみを書き込み、次に停止することです。助言がありますか?ありがとう。最初のインスタンスの後に私のpythonコードが停止していますが、どうすれば変更できますか?

out = open('new.csv', 'w') 
with open('exp.csv','r') as w: 
    header =w.readline() 
    out.write(header) 
    for line in w: 
     line = line.strip("\n") 
     tokens = line.split(",") 
     exp_id = tokens[0] 
     if (exp_id=='2243920414'): 
      out.write(line) 
      continue 
out.close() 
+0

'continue'は冗長です。 –

+1

@AshishNitinPatil 'out.close()'が必要です。そうしないと、ファイルが破損します。 –

答えて

0

line = line.strip('\n')を削除しても問題ありません。 改行を削除した場合は、一度一致したような目に見える単一の行にすべての一致する行を追加するだけです。

with open('exp.csv','r') as w, open('new.csv', 'w') as out: 
    header = w.readline() 
    out.write(header) 
    for line in w: 
     tokens = line.split(",") 
     exp_id = tokens[0] 
     if (exp_id=='2243920414'): 
      out.write(line) 

csv moduleもチェックしてください。 これはcsvファイルに関連するすべてのモジュールに最適です。

+1

ありがとう@Sevanteri!これはうまくいった。私はこれに取り組んでいたときにそれを伝えるのを忘れていましたが、感謝のために遅すぎることはありません。ありがとうございました! – Aisle

関連する問題