¿Por qué son útiles los administradores de contexto para recursos como archivos o conexiones de red?
Vinculan la preparación y la limpieza a un bloque de código, de modo que los recursos se liberen de forma fiable.
Sustituyen todas las llamadas a funciones por variables globales.
Garantizan que el código dentro del bloque nunca genere una excepción.
Mantienen todos los recursos abiertos hasta que se finaliza el proceso de Python.