使用Python如何删除CSV文件中特定字符所在的整行?
我有一个很大的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, 的内容,
- 把那一行删掉。
提示:可以看看 fileinput 这个东西。
5
试试这个方法。
import csv
reader = csv.reader(open("file.csv", "rb"), delimiter=',')
for line in reader:
if "-1" not in line:
print line