跳过for循环中的错误行

时间:2016-05-25 01:49:37

标签: python loops error-handling skip

我正在迭代csv文件中的每一行,只选择/计算满足条件的行。但是,当连续出现错误时,它会停止循环。有没有办法告诉python跳过错误并移动到下一行?我使用try函数但没有用。我的代码是

try(row['BAS'] = float(row['Close Ask']) - float(row['Close Bid']))

错误是其中一个单元格是一个字符串而无法转换为浮点数

3 个答案:

答案 0 :(得分:1)

你想要这样的东西:

for row in csv_file:
    try: 
        x = float(row['Close Ask']) - float(row['Close Bid'])
    except ValueError:
        continue
    else:
        # now keep going doing something with x
        ...

答案 1 :(得分:0)

您可以通过捕获该类型的错误(ValueError)来忽略该错误,并有效地忽略它:

try:
    row['BAS'] = float(row['Close Ask']) - float(row['Close Bid'])
except ValueError:
    pass

答案 2 :(得分:0)

你应该把你的代码放在try / except:

try:
    code
except:
    pass

(你不应该使用如此广泛的例外,但我不知道发生的错误。)