消除大型.csv文件中的格式错误的记录

时间:2016-01-30 16:25:21

标签: python csv

我有一个很大的.csv文件,我想用一个python脚本来处理它,并找到所有"格式错误的值#34;具有比标题数量更多或更少值的那些,并消除它们。

最好的方法是什么?

1 个答案:

答案 0 :(得分:3)

这是一个基本的例子:

num_headers = 5
with open("input.csv", 'r') as file_in, open("output.csv", 'w') as file_out:
    for i, line in enumerate(file_in):
        if len(line.split(",")) == num_headers:
            file_out.write(line)
        else:
            print "line %d is malformed" % i

或使用csv模块(对于不同类型的CSV格式更灵活):

import csv
num_headers = 5
with open("input.csv", 'r') as file_in, open("output.csv", 'w') as file_out:
    csv_in = csv.reader(file_in)
    csv_out = csv.writer(file_out)
    for i, row in enumerate(csv_in):
        if len(row) == num_headers:
            csv_out.writerow(row)
        else:
            print "line %d is malformed" % i