Python CSV模块已设置为迭代csv对象。数据干净时,这很容易。但是,如果您想捕获解析csv文件中错误行的错误,则会变得很复杂。有没有办法尝试:例外:处理错误而不会脱离for循环?
这是文档所说的:
import csv
with open('data.csv', mode='r') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
#do stuff
但是,如果在“行入阅读器”期间解析记录时发生错误,如何在不轰炸for循环的情况下捕获错误?
以下内容将捕获错误,但会杀死循环
import csv
with open('data.csv', mode='r') as csvfile:
reader = csv.DictReader(csvfile)
count = 0
try:
for row in reader:
count += 1
#do stuff
except:
print('had and error on record {:d}'.format(count+1) )
这是Python中经常出现的问题。必须有一种“ pythonic”方式来处理此类错误。