使用Python如何删除CSV文件中特定字符所在的整行?

1 投票
2 回答
3864 浏览
提问于 2025-04-17 08:39

我有一个很大的csv文件,里面有216961行:

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

我需要筛选这个文件,去掉所有包含-1的行,大约有6900行,所以我想请教一下大家的帮助。

这是我尝试过的代码:

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 个回答

-2

如果你只有一个文件,为什么不试试用vim呢?

:g/,-1,/d

如果你有多个文件,可以试试下面的方法:

  1. 找一行里面有 ,-1, 的内容,
  2. 把那一行删掉。

提示:可以看看 fileinput 这个东西。

5

试试这个方法。

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

撰写回答