Obteniendo detalles de excepción en Python

Tengo que abrir y escribir en aproximadamente 10 archivos diferentes, todos dentro del mismo bucle. p.ej:

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

Ahora, lo que me gustaría hacer es poder obtener información específica sobre las excepciones, como el archivo que se abrió / grabó dentro de la excepción general. Desde mi entendimiento actual, tendría que hacer algo como esto para lograr lo que quiero:

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

... Lo cual se volverá extremadamente torpe y poco atractivo cuando tenga que hacer esto por aproximadamente 10 archivos diferentes. ¿Hay alguna manera de obtener (por ejemplo) la información del nombre de archivo de una excepción general como en mi primer ejemplo? Básicamente, la excepción podría informar cosas como "error al escribir en file1" sin intentar / excepto específicamente para operaciones de file1.

editar: Esta es una simplificación masiva de los datos que se escriben en el archivo. str (a) y str (a) + "hi" no son realmente buenas representaciones de los datos que realmente se escriben; file1 puede necesitar un entero codificado, donde file2 puede necesitar una cadena formateada con múltiples variables. generalizar el proceso de apertura / escritura en un bucle no va a funcionar muy bien.

Respuestas a la pregunta(4)

Su respuesta a la pregunta