Programación con Python: Ficheros

Trabajar con ficheros es esencial para leer y escribir datos en el sistema de archivos de nuestro ordenador. A continuación mostraremos la sintaxis básica para utilizar ficheros en Python, incluyendo cómo abrir, leer y escribir en ellos. Utilizaremos explicaciones acompañadas de ejercicios prácticos.

1. Abrir y cerrar ficheros

Para trabajar con un archivo en Python, primero debemos abrirlo. Podemos usar la función open() para abrir un archivo en diferentes modos, como lectura ( 'r' ) o escritura ( 'w' ) y también para añadir ( 'a' ). Después de terminar de trabajar con el fichero, debemos cerrarlo utilizando el método close() para liberar recursos y también para evitar la pérdida de datos:

# Abrir un archivo en modo de lectura
archivo = open("archivo.txt", "r")

# Trabajar con el archivo (leer o escribir)
# Cerrar el archivo después de terminar
archivo.close()

2. Leer contenido de un fichero

Para leer el contenido de un archivo, podemos usar los métodos read() , readline() o readlines() :

  • read() . Lee todo el contenido del archivo como una cadena de texto:
    archivo = open("archivo.txt", "r")
    contenido = archivo.read()
    print(contenido)
    archivo.close()
    
  • readline() . Lee una línea del archivo:
    archivo = open("archivo.txt", "r")
    linea = archivo.readline()
    print(linea)
    archivo.close()
    
  • readlines() . Lee todas las líneas del archivo y las devuelve como una lista:
    archivo = open("archivo.txt", "r")
    lineas = archivo.readlines()
    print(lineas)
    archivo.close()
    

    3. Escribir en un archivo

Para escribir en un archivo, debemos abrirlo en modo de escritura, con 'w' o para añadir, con 'a' , según lo que necesitemos en cada momento:

  • Modo escritura ( 'w' ). Sobrescribe el contenido del archivo existente o crea un nuevo archivo si no existe:
    archivo = open("archivo.txt", "w")
    archivo.write("Este es un nuevo contenido.\n")
    archivo.write("¡Hola, Mundo!\n")
    archivo.close()
    
  • Modo añadir ( 'a' ). Agrega contenido al final del archivo existente o crea un nuevo archivo si no existe:
    archivo = open("archivo.txt", "a")
    archivo.write("Este es un contenido adicional.\n")
    archivo.write("¡Hola de nuevo!\n")
    archivo.close()
    

    4. Gestores de contexto

El uso de un gestor de contexto con la declaración with es una forma más segura y eficiente de trabajar con ficheros. Utilizando esta funcionalidad, el archivo se cierra automáticamente cuando el bloque with termina, incluso si se produce una excepción:

# Leer contenido del archivo con un Context Manager
with open("archivo.txt", "r") as archivo:
    contenido = archivo.read()
    print(contenido)

# Escribir en el archivo con un Context Manager
with open("archivo.txt", "a") as archivo:
    archivo.write("Esto es un nuevo contenido con Context Manager.\\n")

## 5. Verificar si un archivo existe

Podemos usar el módulo os para verificar si un archivo existe antes de abrirlo.

import os

nombre_archivo = "archivo.txt"

if os.path.exists(nombre_archivo):
    with open(nombre_archivo, "r") as archivo:
        contenido = archivo.read()
        print(contenido)
else:
    print(f"El archivo '{nombre_archivo}' no existe.")