with - Trabajar con recursos que abrir y cerrar en python

La sentencia with permite manejar recursos que necesiten cerrarse; piensa en una base de datos o un archivo; de forma segura garantizando que se usen y se cierren lo que hace tu código más prolijo y ordenado.

Estructura:

whith expresion as variable:
  # Aqui trabajas con el recurso
  
# Aqui ya se cerró

Ejemplo:

with open('file.txt') as f: 
  data = f.read()