阅读此post并没有真正回答我的问题。
我有一个
reader = csv.reader(source)
for row in reader:
if len(row[0]) > 23:
#do stuff
continue
if low > float(row[1]) > high:
#do stuff
continue
if low > float(row[2]) > high:
#do stuff
continue
else:
print('All', reader.line_num, 'read successfully.')
设置但else
已执行,尽管我在for
循环中跳过。
我宁愿只在没有continue
被击中的情况下才会调用else。
为了澄清,代码的目的是删除csv文件中的错误/格式错误的数据行。因此,格式错误的行具有单独的错误处理。如果可能的话,使用'else'作为最终通知符将比使用标志更美观。
答案 0 :(得分:4)
else
唯一重要的是循环是否因为到达迭代的末尾而终止;它并不关心循环内部发生的事情。
如果您希望根据是否曾调用过continue
而有不同的行为,那么您必须自己跟踪它。