我有一个很大的.csv
文件,我想用一个python脚本来处理它,并找到所有"格式错误的值#34;具有比标题数量更多或更少值的那些,并消除它们。
最好的方法是什么?
答案 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