2011-12-19 5 views
1

私は、216961行大きなCSVファイルを持っている:私はあなたの助け
をお願いしたいと思い、私はファイルをふるいと-1が存在しているすべてのラインは約6900行、 を削除する必要がpythonを使用して、特定の文字がこの行にある場合、csvファイル内の行全体を削除する方法はありますか?

9808,54,43,59,999,17,10,59,999,-1,0,0 
9809,54,43,59,999,17,12,0,-1,0,0 
9810,54,43,59,999,17,13,0,001,-1,0,0 
9811,54,43,59,999,17,13,59,999,-1,0,0 
9812,54,43,59,999,17,15,0,-1,0,0 
9813,54,43,59,999,17,16,0,001,0,0,0 
9814,54,43,59,999,17,16,59,999,0,0,0 
9815,54,43,59,999,17,18,0,0,0,0 
9816,54,43,59,999,17,19,0,001,0,0,0 
9817,54,43,59,999,17,19,59,999,0,0,0 
9818,54,43,59,999,17,21,0,0,0,0 
9819,54,43,59,999,17,22,0,001,0,0,0 
9820,54,43,59,999,17,22,59,999,0,0,0 


私の試み:

import csv 
reader = csv.reader(open("file.csv", "rb"), delimiter=',') 
for line in reader: 
    match = line[7] 
    if match not in '-1': 
     print line 


だが-1ラインで常にではない[7]

+2

試したコードを投稿してください。試したコードに関する具体的な質問をしてください。これまでのところ、これは 'csv'モジュールを使ったPythonのいくつかの行です。試してみたコードを投稿してください。これは役に立ちませんでした。 –

答えて

5

この方法をお試しください。

import csv 
reader = csv.reader(open("file.csv", "rb"), delimiter=',') 
for line in reader: 
    if "-1" not in line: 
     print line 
-2

ファイルが1つだけの場合は、vimを使用しないでください。複数のファイルがある場合は、-1、とのラインのための

  1. 検索を試すことができます

    :g/,-1,/d 
    

  2. は、その行

ヒントを削除します:FileInputクラス

を見て
+1

"、-1"で終わる行には失敗します –

+0

同意します。それを修正することは、OPのための練習として残されています。ヒント:グローバルコマンド(:g)を複数回実行できます。 –

関連する問題