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)
Practica esta lección
Resuelve los ejercicios del curso de Python en la app, gratis y con corrección automática.
Empezar a practicar