我有一个函数,它读取CSV文件,检查行中的值,如果一切正常,就将这些行写入一个新的CSV文件。在我的主函数中,我调用了几个验证函数来检查行的值和格式。我正在尝试以一种方式实现我的主函数,这样当我调用其他验证函数时,如果某些内容不符合要求,我就会跳过完全不写入该行。
#main function
for row in reader:
try:
row['amnt'] = divisible_by_5(row['amnt'])
row['issue_d'] = date_to_iso(row['issue_d'])
writer.writerow(row)
except:
continue
#Validation function
def divisible_by_5(value):
try:
float_value = float(value)
if float_value % 5 == 0 and float_value != 0:
return float_value
else:
raise ValueError
except ValueError:
return None
目前,作者仍在编写应该跳过的行。例如,如果一个数字不能被5整除,作者并没有跳过这行,而是只是写下了''
。
那么,在我的for循环中,我如何处理divisible_by_5
引发的异常(ValueError
),以便不编写会引发异常的行?