¿Por qué se prefiere with open("data.txt") as f: a f = open("data.txt")?
Opciones
- Lee el archivo más rápido que una llamada normal a
open() - El archivo se cierra solo cuando termina el bloque, incluso tras un error (Opción correcta)
- Crea el archivo por ti cuando todavía no existe
- 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.