Usando `with open()` — Context Manager para Arquivos

Publicado:
Atualizado:
PorJeferson Peter
1 min de leitura
Python
Compartilhe este post:

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.

Compartilhe este post: