El manejo de archivos es una habilidad esencial en la programación, ya que permite almacenar y recuperar información de manera persistente. En Python, trabajar con archivos de texto (.txt) es una tarea sencilla y versátil, ideal para registrar datos, configurar aplicaciones o incluso procesar grandes volúmenes de texto. Este lenguaje proporciona funciones integradas para abrir, leer, escribir y cerrar archivos de manera eficiente.
Las instrucciones se muestran en las siguientes secciones
Para empezar con la edición de un archivo de texto se utiliza el comando open de la siguiente manera
archivo = open('nombre_archivo.txt', 'modo')
En donde modo hace referencia al tipo de operación que se realizará con el archivo, y puede tomar 1 de estos 4 valores
'r': Lectura (genera error si el archivo no existe)'w': Escritura (Crea el archivo si no existe o borra su contenido si ya existe)'a': Anexar (agrega contenido al final del archivo, sin eliminar datos previos)'r+': lectura y escritura combinadas.Existen 2 principales formas en las que se puede leer el contenido de un archivo .txt de acuerdo con el manejo que se le quiera dar a los saltos de línea en el texto.
read(): Este método lee la totalidad del documento separando teniendo en cuenta los saltos de línea, en una variable tipo string.archivo = open('documento.txt', 'r')
contenido = archivo.read()
archivo.close()
readline(): Este método lee una por una las líneas del archivo, almacenando los saltos de línea como un '\n'. Cada una de las líneas las guarda en un elemento aparte, y retorna un arreglo con todos estos elementosarchivo = open('documento.txt', 'r')
arreglo = archivo.readline()
archivo.close()
Nótese que en ninguno de los escenarios archivo es una variable de tipo string, por lo que el comando print(archivo) no proporcionará nada útil para un curso de algoritmos, mientras que los comandos print(contenido) y print(arreglo) proporcionará el texto que estaba contenido en el archivo .txt. La siguiente tabla resumen el significado de cada elemento del código:
Elemento | Significado | Tipo de variable |
| Es la variable que almacena la información del archivo .txt (no su contenido) | File |
| Es la variable que almacena el contenido del archivo .txt | String |
| Es la variable que almacena el contenido del archivo .txt separando cada una de las líneas como elementos de un arreglo | Array de Strings |
| Es el nombre del archivo .txt que está guardado en el computador | String |
Es imperativo cerrar el documento una vez se termine de utilizar, pues este documento quedará abierto aunque no aparezca en la barra de tareas de Windows. Incluso el documento no se podrá enviar por correo o modificar mientras esté abierto por Python. Para ello se usa el comando archivo.close()
Para crear o sobrescribir en archivos de texto, se utiliza el modo 'w' y el método write(), como se muestra en el ejemplo:
archivo = open('documento.txt', 'w')
archivo.write('Este es el contenido del documento.\n')
archivo.close()
El método write() no realiza un salto de línea automáticamente como sí lo hace el comando print(), para ello se utiliza el caracter '\n' o se puede usar el método writeline()
archivo = open('documento.txt', 'w')
archivo.writeline('Primera línea')
archivo.writeline('Segunda línea')
.
.
.
archivo.close()
En este caso no podrás ver reflejado el cambio en el documento .txt hasta no haber cerrado el archivo utilizando el método close().
Cuando se quiere editar un documento sin la necesidad de eliminar su contenido, se utiliza el modo 'a', en donde se comenzará a escribir al final del documento
archivo = open('documento.txt', 'w')
archivo.write('Nueva línea al final del documento.\n')
archivo.close()
Si no existía un archivo .txt con el nombre escrito, esta función la creará automáticamente y funcionará igual que el modo 'w'. Si se quiere saber si un archivo existe, o se quiere eliminar un archivo sin escribir nada, se puede utilizar la librería os de la siguiente manera.
import os
if os.path.exists('documento.txt'): #este comando retorna un True si el documento existe y un False sino
os.remove('documento.txt')#este comando elimina el documento con el nombre especificado.
Es frecuente que las operaciones que se tengan que realizar con un archivo sean instantáneas, y no se ejecuten con otros procesos del código. Por este motivo, y con la finalidad de evitar el uso del método close(), existe el comando with.
with open(‘documento.txt','r') as archivo:
contenido = archivo.read()
#aquí el archivo ya está cerrado
En este caso, la variable archivo haces las veces de una variable local, que solo existe al interior del contenido del with. Esto se considera una buena práctica dada la posibilidad de obtener errores en el código. Si el código falla mientras que una variable contenga la información de un archivo y esté abierto, el archivo no se cerrará automáticamente si no se está utilizando el comando with, en cambio, con este comando, el archivo se cerrará inmediatamente se finalice su uso.