Em alguns casos, ao escrever programas grandes, podemos esquecer de fechar os ficheiros. Abrir e fechar manualmente parece um trabalho repetitivo. Para evitar esse problema, podemos usar a instrução with para abrir e fechar automaticamente o ficheiro assim que o programa sai do bloco with:
with open('document.txt') as f: # Previously f = open('document.txt')
print(f.read())
print('Done!')
A palavra-chave as é usada para criar um alias. Neste exemplo, criamos um alias f que se refere a open('document.txt').
Note que não há chamadas a f.open() ou f.close(). Isso é tratado automaticamente. Assim que o programa entra no bloco with open(), o ficheiro document.txt é aberto e, assim que o programa sai do corpo do bloco with, o ficheiro é fechado. Portanto, quando o programa chega à instrução print('Done!'), o ficheiro já foi fechado.
Esta é a forma preferida de trabalhar com ficheiros em vez de usar .open() e .close() todas as vezes.
Desafio
É pedido que multiplique dois números localizados no ficheiro numbers.txt em linhas separadas.
A saída do programa deve conter um único número inteiro — o produto dos dois números.