En algunos casos, al escribir programas grandes, podríamos olvidar cerrar los archivos. Abrirlos y cerrarlos manualmente parece mucho trabajo repetitivo. Para evitar ese problema, podemos usar la instrucción with para abrir y cerrar automáticamente el archivo en cuanto el programa sale del bloque with:
with open('document.txt') as f: # Anteriormente f = open('document.txt')
print(f.read())
print('Done!')
La palabra clave as se utiliza para crear un alias. En este ejemplo, creamos un alias f que se refiere a open('document.txt').
Observa que no hay llamadas a f.open() o f.close(). Eso se maneja automáticamente. Tan pronto como el programa entra en el bloque with open(), el archivo document.txt se abre y tan pronto como el programa sale del cuerpo del bloque with, el archivo se cierra. Así que, cuando el programa llega a la instrucción print('Done!'), el archivo ya ha sido cerrado.
Esta es la manera preferida de trabajar con archivos en lugar de abrirlos con .open() y cerrarlos con .close() cada vez.
Desafío
Se te pide multiplicar dos números ubicados en el archivo numbers.txt en líneas separadas.
La salida del programa debe contener un solo entero: el producto de los dos números.