Reputation: 1337
I have large csv file, 216961 lines:
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
I need to sieve the file and remove all lines where -1 is present, about 6900 lines,
so I would like to ask for Your help
my attempt:
import csv
reader = csv.reader(open("file.csv", "rb"), delimiter=',')
for line in reader:
match = line[7]
if match not in '-1':
print line
but -1 is not always at line[7]
Upvotes: 1
Views: 3867
Reputation: 17246
Try this approach.
import csv
reader = csv.reader(open("file.csv", "rb"), delimiter=',')
for line in reader:
if "-1" not in line:
print line
Upvotes: 5
Reputation: 11140
If you have only one file, why not use vim?
:g/,-1,/d
If you have multiple files, you can try
Hints: look at fileinput
Upvotes: -2