0Pricing
Python Academy · Aula

Uso da instrução with para arquivos

Garanta que os arquivos sejam fechados automaticamente usando gerenciadores de contexto.

Uso da instrução with para arquivos é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.

Introdução

A instrução with garante que os arquivos sejam fechados automaticamente, mesmo quando ocorre uma exceção.

A instrução with

with open('file.txt') as f: fecha f automaticamente quando o bloco termina, seja normalmente ou por causa de uma exceção.
# with open('data.txt') as f:
#     content = f.read()
# f is now closed
print('with demo')

Por que with é melhor que try/finally

Sem with, você precisa escrever try: ... finally: f.close() para garantir o fechamento. with faz isso automaticamente.
# Equivalent to:
# f = open('file.txt')
# try:
#     content = f.read()
# finally:
#     f.close()
print('comparison demo')

Vários arquivos

with open('a.txt') as a, open('b.txt') as b: abre dois arquivos em uma única instrução.
# with open('in.txt') as src, open('out.txt','w') as dst:
#     for line in src:
#         dst.write(line.upper())
print('multi-file demo')

Protocolo de gerenciador de contexto

with usa __enter__ e __exit__. open() retorna um objeto de arquivo que implementa esses métodos. Mais adiante, escreveremos nosso próprio gerenciador.
# f.__enter__() opens
# f.__exit__() closes
print('protocol demo')

Leitura e processamento

Combine with, for line in f: e .strip() para processar linhas de forma limpa: remova as quebras de linha e ignore as linhas vazias.
lines = ['  hello  \n', '  world  \n']
cleaned = [l.strip() for l in lines if l.strip()]
print(cleaned)

Escrita com with

with open('out.txt','w') as f: f.write('data') — o arquivo é esvaziado e fechado ao sair do bloco.
# with open('out.txt', 'w') as f:
#     for i in range(10):
#         f.write(f'{i}\n')
print('write with demo')

Verificando se um arquivo existe

import os; os.path.exists('file.txt') retorna True se o arquivo existir. Isso evita FileNotFoundError.
import os
print(os.path.exists('/tmp'))
print(os.path.exists('/nonexistent'))

Erros de open()

FileNotFoundError: o arquivo não existe. PermissionError: não há permissão para ler ou escrever. Use try/except para um tratamento robusto.
try:
    with open('/nonexistent.txt') as f:
        pass
except FileNotFoundError as e:
    print('File not found:', e)

StringIO para arquivos na memória

from io import StringIO permite usar uma string como objeto de arquivo — excelente para testar código de processamento de arquivos.
from io import StringIO
buf = StringIO('line1\nline2\n')
for line in buf:
    print(line.rstrip())

Módulo tempfile

tempfile.NamedTemporaryFile() cria um arquivo temporário que é excluído ao ser fechado. É seguro para processar dados transitórios.
import tempfile
with tempfile.NamedTemporaryFile(mode='w', suffix='.txt', delete=True) as f:
    f.write('temp data')
    print(f.name)

Verificação rápida

O que a instrução with garante quando usada com operações de entrada e saída de arquivos?

Recapitulação

with open(f) as h: fecha h automaticamente. Use vários destinos para vários arquivos. Use StringIO para testes na memória. Trate FileNotFoundError de forma adequada.

Continue avançando

Excelente trabalho! Passe à próxima lição para continuar avançando.

Perguntas Frequentes

A aula “Uso da instrução with para arquivos” é grátis?

Sim — o texto completo de “Uso da instrução with para arquivos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.

O que vou aprender em “Uso da instrução with para arquivos”?

Garanta que os arquivos sejam fechados automaticamente usando gerenciadores de contexto. Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Python Academy?

Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Uso da instrução with para arquivos”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Python Academy?

Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Abertura e leitura de arquivos
  2. Escrita e adição a arquivos
  3. Uso da instrução with para arquivos
  4. Trabalho com caminhos de arquivos usando pathlib
← Voltar para Python Academy