Python: continue l'itération de for loop sur exception
J'ai un simple for
boucle en Python qui est sortie sur les exceptions, même si le bloc d'exception contient un continue
. Il y a encore environ 10 lignes de gauche à lire quand il frappe un IndexError
et sort de la for
boucle. Ce qui me manque ici?
for row in hkx: ##'hkx' are rows being read in from 'csv.open'
try:
print row[2],row[4]
except IndexError, e:
print 'Error:',e
print 'Row Data:',len(row),row
continue ## I thought this would just move on to the next row in 'hkx'
(désolé, total Python newbie...)
Merci à l'avance!
source d'informationauteur Nathan
Vous devez vous connecter pour publier un commentaire.
Il fait exactement comme il se doit et se poursuit à la ligne suivante. Si une exception est la fin de votre code au début, puis il doit pas être IndexError, ou il doit être générée à partir du code en dehors de la
try:
bloc.Noter que si la ligne contient au moins 3 objets que vous obtenez la moitié de vos impressions, si vous utilisez un format de chaîne de caractères, vous pouvez l'éviter. (par exemple,
print "{} {}".format(row[2],row[4])
)Vous ne l'avez pas dit comment hkx est défini, sauf qu'il vient de
csv.open
. Si c'est un générateur plutôt qu'une simple liste, alors qu'il pourrait être que simplement une itération de plus il jette IndexError. Dans ce cas, vous ne marcherait pas, mais le vidage de pile serait montrer de la ligne avec lefor row in hkx
.