Un context manager es un objeto que define lógica de configuración y de liberación, usado con la sentencia with. Garantiza que la limpieza (cerrar archivos, liberar locks, revertir transacciones) ocurra automáticamente — incluso si se produce un error.
El problema que resuelve
f = ()
data = f.read()
process(data)
f.close()
() f:
data = f.read()
process(data)
