J'ai littéralement appris le concept de contourner les erreurs rencontrées dans les boucles for-loops. J'ai une liste de fichiers lus à partir de mon ordinateur local et je voudrais les lire en tant que données pandas. Disons que j'ai une liste de fichiers et chaque fichier en colonnes "A", "B" et "C". S'il y a une colonne spécifique, disons colonne "B" de fichier3.tbl, manquant dans un fichier sur mon ordinateur, je veux continuer avec ma boucle for.Python: Try, Continue, Exceptation dans la boucle for
list = ['file1.tbl', 'file2.tbl', 'file3.tbl']
for i in range(len(list)):
data = pandas.read_csv(list[i])
try:
b = data['B']
continue
except Exception:
print "Column B not included in file: ", list[i]
Cela semble fonctionner un peu, mais elle imprime l'exception statment len (liste) nombre de fois, comme ceci:
Column B not included in file: file3.tbl
Column B not included in file: file3.tbl
Column B not included in file: file3.tbl
est-il un moyen de le faire pour imprimer une seule fois pour que itération spécifique?
Voulez-vous dire 'la liste [i]' 'liste au lieu de [ii]'? De plus, l'indentation est désactivée sur votre bloc 'try'. –
Oui, je le fais! Je vais éditer les deux. –
Ne faites pas 'exception Exception'; Il a le potentiel de cacher un tas de choses que vous préférez savoir. 'excepté KeyError' serait plus spécifique. Aussi, êtes-vous sûr que c'est en fait votre code? Il est étrange que '.dat' soit imprimé lorsque votre liste contient seulement' .tbl'. – Ryan