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.

  1. Comprender los conceptos básicos del manejo de archivos en Python
  2. Explorar cómo abrir archivos, leer su contenido, escribir datos nuevos y agregar información, utilizando ejemplos prácticos y explicaciones claras.
  3. Implementar la instrucción with para gestionar archivos de forma segura, garantizando el cierre automático y evitando errores comunes relacionados con la manipulación de datos persistentes.
  4. Proveer las herramientas necesarias para que los participantes exploren por su cuenta aplicaciones más avanzadas del manejo de archivos en Python.

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

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.

  1. Utilizando el método 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()
  1. Utilización del método 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 elementos
archivo = 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

archivo

Es la variable que almacena la información del archivo .txt (no su contenido)

File

contenido

Es la variable que almacena el contenido del archivo .txt

String

arreglo

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

'documento.txt'

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.