Python Programming

Manejo de Archivos en Python: Guía Completa

Spread the love

Este tutorial proporciona una guía completa sobre el manejo de archivos en Python. Los archivos son cruciales para el almacenamiento y la recuperación persistente de datos, permitiendo que sus programas interactúen con datos más allá de su tiempo de ejecución. Cubriremos las operaciones fundamentales de archivos, desde abrir y cerrar archivos hasta leer, escribir, renombrar y eliminarlos. También exploraremos las mejores prácticas para el manejo de errores y la gestión eficiente de archivos.

Tabla de Contenido:

  1. Abrir Archivos
  2. Objetos de Archivo y Administradores de Contexto
  3. Escribir en Archivos
  4. Leer de Archivos
  5. Operaciones del Sistema de Archivos: Renombrar y Eliminar
  6. Manejo de Excepciones

1. Abrir Archivos

La función open() es la piedra angular de la interacción con archivos en Python. Toma el nombre del archivo (una cadena) y un modo como argumentos principales. El modo determina cómo se accederá al archivo (lectura, escritura, anexión, etc.).

Los modos comunes incluyen:

  • 'r': Lectura (predeterminado). Abre para lectura. Genera un error si el archivo no existe.
  • 'w': Escritura. Abre para escritura. Sobrescribe el archivo si existe; lo crea si no existe.
  • 'a': Anexión. Abre para escritura. Anexa datos al final si el archivo existe; lo crea si no existe.
  • 'x': Creación exclusiva. Crea un archivo nuevo. Genera un error si el archivo ya existe.
  • 'b': Modo binario. Para archivos no de texto (imágenes, ejecutables). Se puede combinar con otros modos (por ejemplo, 'rb', 'wb').
  • 't': Modo texto (predeterminado). Para archivos de texto.

# Abrir un archivo para escritura
file = open("my_file.txt", "w")

# Abrir un archivo para lectura
file = open("my_file.txt", "r")

# Abrir un archivo en modo binario para lectura
file = open("image.jpg", "rb")

2. Objetos de Archivo y Administradores de Contexto

open() devuelve un objeto de archivo, proporcionando métodos para la interacción con archivos. Una práctica recomendada crucial es usar administradores de contexto (instrucción with) para asegurar que los archivos se cierren automáticamente, incluso si ocurren errores:


with open("my_file.txt", "w") as file:
    file.write("Este es algún texto.n")  # El archivo se cierra automáticamente después de este bloque

with open("my_file.txt", "r") as file:
    contents = file.read()
    print(contents)

3. Escribir en Archivos

El método write() escribe una cadena en el archivo. Para escribir varias líneas, use n para saltos de línea.


with open("my_file.txt", "w") as file:
    file.write("Línea 1n")
    file.write("Línea 2n")

4. Leer de Archivos

Varios métodos leen datos del archivo:

  • read(): Lee todo el contenido del archivo en una sola cadena.
  • readline(): Lee una sola línea.
  • readlines(): Lee todas las líneas en una lista de cadenas.
  • Iteración: Puede iterar directamente sobre un objeto de archivo para leer líneas una por una.

with open("my_file.txt", "r") as file:
    contents = file.read()
    print(contents)

    file.seek(0) # Reinicia el puntero del archivo
    line = file.readline()
    print(line)

    file.seek(0) # Reinicia el puntero del archivo
    lines = file.readlines()
    print(lines)

    file.seek(0) # Reinicia el puntero del archivo
    for line in file:
        print(line, end="") #end="" evita un salto de línea extra

5. Operaciones del Sistema de Archivos: Renombrar y Eliminar

El módulo os proporciona funciones para la manipulación del sistema de archivos:


import os

# Renombrar un archivo
os.rename("my_file.txt", "new_file.txt")

# Eliminar un archivo
os.remove("new_file.txt")

6. Manejo de Excepciones

Siempre maneje las posibles excepciones (FileNotFoundError, IOError, etc.) cuando trabaje con archivos:


try:
    with open("my_file.txt", "r") as file:
        # ... operaciones de archivo ...
except FileNotFoundError:
    print("Archivo no encontrado.")
except IOError as e:
    print(f"Ocurrió un error de E/S: {e}")

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *