Curso de programación en Python usando Linux. Decimocuarta parte
En las entregas anteriores de este curso de programación en Python usando Linux vimos que se podían ingresar datos desde listas, tuplas y diccionarios o pidiéndole al usuario que los ingresara manualmente. Ahora veremos como trabajar leyendo o guardando archivos.
Con la importación de los módulos necesarios, Python puede leer , crear y escribir en diversos formatos de archivos incluyendo los de las suites ofimáticas más populares y pdf, sin embargo en este post nos quedaremos por el momento con los archivos de texto.
Curso de programación en Python usando Linux. Decimocuarta parte
Los archivos de texto plano son la forma más básica de almacenar datos. Se trata de letras, números símbolos y espacios almacenados en líneas sin ningún tipo de formato. Es el tipo de archivo que se crea con programas como Gedit, Kate o el bloc de notas de WIndows.
Al ser compatibles con la mayoría de los programas y lenguajes de programación, el formato de texto plano se usa para guardar información simple como configuraciones, registros de actividades, listras o resultados de la ejecución de programas.
Python integra desde su instalación los comandos básicos para trabajar con archivos de texto icluyendo abrirlos, leerlos, escribirlos y cerrarlos.
La función open()
Esta función necesita dos parámetros, el nombre del archivo y alguno de los siguientes:
- r: Lee un archivo existente.
- w: Comprueba si el archivo existe, en caso de que no exista lo crea y si existe sobrescribe su contenido.
- r+: Combina lectura y escritura del archivo.
- a: Escribe a continuación del contenido del archivo.
Por ejemplo, esta instrucción:
archivo = open("archivo.txt", "r")
- Abre el archivo archivo y lee su contenido.
- La variable almacena el objeto que la función open crea al abrir el archivo.
Con este programa abrimos el archivo, leemos e imprimimos su contenido y cerramos el archivo.
archivo = open("archivo.txt", "r")
contenido = archivo.read()
print(contenido)
archivo.close()
Este programa
- Abre el archivo en modo lectura y asigna el objeto a la variable archivo.
- El método read asignado a la variable del objeto archivo lee el contenido usando el método read y lo asigna a la variable contenido.
- Imprime el contenido almacenado en la variable contenido.
- Cierra el archivo.
Ahora veamos otra forma de leer el contenido de un archivo;
En este caso utilizamos otro método llamado readlines.
- El programa abre el archivo en modo lectura, crea el objeto y lo asigna a la variable archivo.
- Con la función archivo.readlines se crea una lista con todas las líneas del archivo de texto y se asigna a la variable líneas.
- El bucle imprime línea por línea con un detablle. Como los editores de texto plano incluyen un caracter especial para indicar los saltos de línea, el método strip elimina ese caracter en la impresión.
- Se cierra el archivo.
Podemos escribir un archivo con un programa como este
archivo = open("archivo.txt", "w")
archivo.write("Hola, estamos escribiendo un archivo.\n")
archivo.write("usando un programa en Python.")
archivo.close()
- El programa abre un archivo o lo crea si no existe, crea un objeto y lo asigna a la variable archivo.
- Escrive la primera línea agregando el método write a la variable archivo. .\n indica que debe haber un salto de línea.
- Escribe la segunda línea.
- Cierra el archivo.
Otro método de escribir en un archivo:
archivo = open("archivo.txt", "a")
archivo.write("Voy a agregar una línea más.")
archivo.close()
Este programa abre el archivo usando el parámetro a para indicar que el texto debe incluirse a continaución del texto actual.
Probemos un ejemplo combinado:
Este es un ejemplo combinado de creación, escritura y lectura de un archivo de texto plano en Python.Este programa hace lo siguietne:
- Crea el archivo distribuciones.txt en modo escritura, crea un objeto para que Python trabaje con él y se lo asigna a la variable archivo.
- Escribe en el archivo el nombre de tres distribuciones seguidos de un salto de línea para que se ordenen en columans.
- Cierra el archivo.
- Abre el archivo en modo lectura, crea el objeto para que Python trabaje con él y se lo asigna a la variable archivo.
- Imprime en pantalla el mensaje de que va a mostrar el contenido del archivo.
- Inicia el bucle para leer línea por línea el contenido del archivo.
- Imprime línea por línea omitiendo el caracter indicador del salto de línea.
- Ciera el archivo.
Manejo de errores
Muchas veces, por errores de codificación o del usuario, pueden producirse situaciones que hacen que el programa no pueda seguir funcionando. Usualmente Python detiene la ejecución y muestra un mensaje de error. Sin embargo podemos adoptar medidas para prevenir esto. Esto se llama manejo de excepciones.
Python dispone de un mecanismo para manejar los problemas (O situaciones excepcionales) que es conocido como el bloque try-except. En try se coloca el código que Python asigna al error y en except cómo debe responderse a ese error. Un error sería por ejemplo intentar abrir un archivo que no existe o escribir en uno para el que el programa no tiene permisos suficientes.
- Iniciamos con la instrucción try el bloque de código que Python debe ejecutar.
- Abrimos el archivo (Suponiendo que exista) en modo lectura.
- Asignamos el contenidodel archivo a la variable contenido.
- Imprimimos el título «Contenido del archivo»
- Imprimimos el contenido.
- Cerramos el archivo.
- En caso de que el programa no encuentre el archivo muestra dos mensajes indicando que el archivo no existe y que verifiquemos el nombre.
Tipos de errores más comunes:
- ValueError: Se intenta utilizar un valor inválido a una operación o función.
- TypeError: Se intenta usar un tipo de dato inválido en una operación o función.
- IndexError: Se quiere acceder a un índice inexistente en una lista o tupla.
- KeyError: Se intenta acceder a una clave inexistente en un diccionario.
- FileNotFoundError: Se intenta acceder a un archivo inexistente.
- ZeroDivisionError: Se intenta dividir a un número por cero.
- AttributeError: Se intenta acceder a un atributo inexistente en un objeto.
- ImportError: Se produce cuando se intenta importar un módulo que no existe o se producen errores al momento de una importación.
En próximos articulos continuaremos con este curso

