Em alguns casos, ao escrever programas grandes, podemos esquecer de fechar os arquivos. Abrir e fechar manualmente parece muito trabalho repetitivo. Para evitar esse problema, podemos usar declarações with para abrir e fechar automaticamente o arquivo assim que o programa sair do bloco with:
with open('document.txt') as f: # Anteriormente 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 f.open() ou f.close(). Isso é tratado automaticamente. Assim que o programa entra no bloco with open(), o arquivo document.txt é aberto, e assim que o programa sai do corpo do bloco with, o arquivo é fechado. Portanto, quando o programa alcança a instrução print('Done!'), o arquivo já foi fechado.
Esta é a maneira preferida de trabalhar com arquivos em vez de usar .open() e .close() toda vez.
Desafio
Pede-se que você multiplique dois números localizados no arquivo numbers.txt em linhas separadas.
A saída do programa deve conter um único número inteiro - o produto dos dois números.