Repaso
English
PythonBasePY-56

¿Por qué se prefiere with open("data.txt") as f: a f = open("data.txt")?

Opciones

  1. Lee el archivo más rápido que una llamada normal a open()
  2. El archivo se cierra solo cuando termina el bloque, incluso tras un error (Opción correcta)
  3. Crea el archivo por ti cuando todavía no existe
  4. Carga todo el archivo en memoria en un solo paso

Respuesta

El archivo se cierra automáticamente cuando termina el bloque, aunque ocurra un error

Por qué

Un archivo abierto usa recursos del sistema operativo y debe cerrarse.

Con with, Python cierra el archivo por ti en cuanto termina el bloque indentado, también si ocurre una excepción a mitad de camino.

Este patrón se llama context manager; también se usa para locks y conexiones a bases de datos.

Recuerda

Usa with para todo lo que deba cerrarse o liberarse.

Términos clave

Practica esta pregunta en Repaso