Obtenir des détails de l'exception en Python

Je dois ouvrir & écrire à environ 10 fichiers différents, tous dans la même boucle.
e.g:

for i in range(0,10):
    try:
        a=5
        file1 = open("file1.txt",'w+')
        file2 = open("file2.txt",'w+')
        #... etc

        print(str(a),file=file1)
        print(str(a)+"hi",file=file2)
        # ... etc
    except: 
        #error handling

Maintenant ce que je voudrais faire est d'être en mesure d'obtenir des informations d'exception comme ce fichier a été ouvert, écrit à l'intérieur de l'exception d'ordre général. À partir de mes connaissances actuelles, je dois faire quelque chose de ce genre pour obtenir ce que je veux:

for i in range(0,5):
    a=5
    try:
        file1 = open("file1.txt",'w+')
        print(str(a),file=file1)
    except: 
        #error handling for file1
    try:
        file2 = open("file2.txt",'w+')
        print(str(a)+"hi",file=file2)
    except: 
        #error handling for file2

...Qui va devenir extrêmement maladroit et peu attrayant quand je dois faire cela pendant environ 10 fichiers différents. Est-il possible de l'obtenir (par exemple) le nom du fichier info de une exception générale comme dans mon premier exemple? Fondamentalement donc, l'exception pourrait le rapport des choses comme "erreur lors de l'écriture de fichier1" sans un try/except spécifiquement pour fichier1 opérations.

edit: C'est un massif de simplification des données écrites sur le fichier. str () et str(a)+"salut" ne sont pas vraiment de bonnes représentations des données réellement écrit; fichier1 peut avoir besoin d'un entier codé en dur, où fichier2 peuvent avoir besoin d'une chaîne formatée avec de multiples variables. pour généraliser l'ouverture/écriture dans une boucle n'est pas un travail très bien.

OriginalL'auteur user891876 | 2013-04-08