daikini
daikini

Reputation: 1337

using python, how to remove whole line in csv file if specific character is present in this line?

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

Answers (2)

David K. Hess
David K. Hess

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

Dat Chu
Dat Chu

Reputation: 11140

If you have only one file, why not use vim?

:g/,-1,/d

If you have multiple files, you can try

  1. Search for a line with ,-1,
  2. Delete that line

Hints: look at fileinput

Upvotes: -2

Related Questions