Inicio > Cursos > Python > Manejo de Errores y Archivos
PythonPython Avanzado y AplicacionesLección 15 de 24

Manejo de Errores y Archivos

Python tiene un sistema de excepciones rico con tipos específicos: ValueError (valor inválido), TypeError (tipo incorrecto), KeyError (clave no existe en dict), FileNotFoundError, ZeroDivisionError, IndexError y muchos más. Capturar el tipo específico de excepción hace el manejo de errores más preciso y el código más seguro.

La lectura y escritura de archivos en Python es simple con open(). El modo "r" es para leer, "w" para escribir (borra el contenido existente), "a" para agregar al final, y "rb"/"wb" para archivos binarios. Siempre usa el context manager with open(...) as f: para garantizar que el archivo se cierre correctamente aunque ocurra un error.

# Manejo de excepciones
try:
    numero = int(input("Ingresa un número: "))
    resultado = 100 / numero
except ValueError:
    print("Error: debes ingresar un número")
except ZeroDivisionError:
    print("Error: no puedes dividir por cero")
except Exception as e:
    print(f"Error inesperado: {e}")
else:
    print(f"Resultado: {resultado}")  # Solo si no hubo error
finally:
    print("Operación completada")

# Excepción personalizada
class EdadInvalidaError(ValueError):
    def __init__(self, edad):
        super().__init__(f"Edad inválida: {edad}. Debe ser entre 0 y 150")
        self.edad = edad

# Archivos - context manager (with)
with open("datos.txt", "w", encoding="utf-8") as archivo:
    archivo.write("Línea 1\n")
    archivo.writelines(["Línea 2\n", "Línea 3\n"])

# Leer archivo
with open("datos.txt", "r", encoding="utf-8") as archivo:
    contenido = archivo.read()       # Todo el contenido
    # O línea por línea:
    # for linea in archivo:
    #     print(linea.strip())

# JSON
import json
datos = {"nombre": "Python", "version": 3.12}
with open("config.json", "w") as f:
    json.dump(datos, f, indent=2)

with open("config.json") as f:
    config = json.load(f)
Consejo📁 Siempre usa "with open(...)" para archivos. Se encarga de cerrar el archivo automáticamente, incluso si hay un error.
← Herencia y PolimorfismoMódulos y Paquetes Populares →

Practica esta lección

Resuelve los ejercicios del curso de Python en la app, gratis y con corrección automática.

Empezar a practicar