Module (80%)
Section (84%)

Diagnosticando problemas con los streams: continuación

Si eres un programador muy cuidadoso, puedes sentir la necesidad de usar una secuencia de sentencias similar a la que se presenta a continuación:

import errno try: s = open("c:/users/user/Desktop/file.txt", "rt") # el procesamiento va aquí s.close() except Exception as exc: if exc.errno == errno.ENOENT: print("El archivo no existe.") elif exc.errno == errno.EMFILE: print("Has abierto demasiados archivos.") else: printf("El número de error es:", exc.errno)

Afortunadamente, existe una función que puede simplificar el código de manejo de errores. Su nombre es strerror(), y proviene del módulo os y espera solo un argumento: un número de error.

Su función es simple: proporciona un número de error y una cadena que describe el significado del error.




Nota: Si pasas un código de error inexistente (un número que no está vinculado a ningún error real), la función lanzará una excepción ValueError.

Ahora podemos simplificar nuestro código de la siguiente manera:

from os import strerror try: s = open("c:/users/user/Desktop/file.txt", "rt") # el procesamiento va aquí s.close() except Exception as exc: print("El archivo no se pudo abrir:", strerror(exc.errno));

Bueno. Ahora es el momento de tratar con archivos de texto y familiarizarse con algunas técnicas básicas que puedes utilizar para procesarlos.