vik
vik

Reputation: 13

How to delete rows of tsv

1 7 c

5 2 q

4 5 a

5 0 c 
for i,line in enumerate(read_tsv):
first = read_tsv[i][0]
second = read_tsv[i][1]
letter = read_tsv[i][2]
if i == 2:
  

I have a tsv file and I'd like to delete the rows where the 3rd values are not c. So I'd like it to look like this. So far I know how to seperate the values I just don't know how to delete the row based on the third tabbed value.

1 7 c 

5 0 c

Upvotes: 1

Views: 1107

Answers (1)

Jab
Jab

Reputation: 27485

You can open the doc read/iterate it and filter out the unwanted rows then open it in write and write that data back

import csv

with open('filename.tsv', 'r') as f:
    reader = csv.reader(f, delimiter='\t')
    data = [row for row in reader if row[2] == 'c']

with open('filename.tsv', 'w') as f:
    writer = csv.writer(f, delimiter='\t')
    writer.writerows(data)

Upvotes: 3

Related Questions