2016-05-25 3 views
0

Je parcourt chaque ligne d'un fichier csv et sélectionne/calcule uniquement les lignes qui correspondent à la condition. Cependant, lorsqu'il y a une erreur dans une ligne, elle arrête la boucle. est-il un moyen d'indiquer à Python d'ignorer l'erreur et de passer à la ligne suivante? J'utilise la fonction try mais ne fonctionnait pas. mon code estignorer une ligne d'erreur dans une boucle for

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

l'erreur est l'une de la cellule est une chaîne et ne peut pas être converti en un flotteur

+0

[ 'CONTINUE] (https://docs.python.org/2/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops)? – ozgur

+2

'try' n'est pas une fonction – donkopotamus

Répondre

1

Vous voulez quelque chose comme:

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 
     ... 
+0

oui, ça marche. Merci beaucoup @donkopotamus – duckman

0

Vous pouvez ignorer l'erreur en attrapant des erreurs de ce type (ValueError) et en ignorant efficacement:

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

vous devez mettre votre code dans un try/except:

try: 
    code 
except: 
    pass 

(vous ne devriez pas utiliser cette large exception, mais la capture je ne sais pas l'erreur qui est INTERVENUES.)