Usando `with open()` — Context Manager para Arquivos
Trabalhar com arquivos é uma tarefa fundamental em Python.
Leitura de logs, geração de relatórios, exportação de dados — isso aparece o tempo todo.
Mesmo assim, um erro comum é esquecer de fechar arquivos corretamente.
É exatamente esse problema que o gerenciador de contexto with open() resolve.
O problema do gerenciamento manual
file = open("data.txt", "r")
content = file.read()
file.close()
Funciona — até algo dar errado.
Se uma exceção ocorrer antes do file.close(), o arquivo permanece aberto, podendo causar problemas.
Usando with open()
with open("data.txt", "r") as file:
content = file.read()
Ao sair do bloco, o Python fecha o arquivo automaticamente, mesmo se ocorrer um erro.
Isso torna o código:
- mais seguro
- mais limpo
- mais fácil de manter
Escrevendo arquivos com segurança
with open("output.txt", "w") as file:
file.write("Olá, mundo!")
Não é necessário chamar close().
Por que with open() é boa prática
Usar with open():
- evita esquecer de fechar arquivos
- lida melhor com exceções
- deixa o escopo do arquivo explícito
Em aplicações reais, esses detalhes fazem diferença.
Um erro comum a evitar
Evite misturar with open() com fechamento manual:
with open("data.txt", "r") as file:
content = file.read()
file.close() # desnecessário
O gerenciador de contexto já cuida disso.
Conclusão
Na prática, usar with open() é um daqueles hábitos que melhoram a qualidade do código sem esforço.
Se um arquivo precisa ser aberto, quase sempre ele deve estar dentro de um context manager.