Carregando...

Fechar o arquivo com segurança

Na página anterior, era você quem escrevia close para encerrar o arquivo. Se o programa parasse antes dessa linha, o arquivo podia ficar aberto. O with tira esse peso de você: assim que as linhas com recuo terminam, ele fecha o arquivo. Isso vale também quando uma dessas linhas faz o programa parar.

a tela mostra saved e bread fica no arquivo

python
with open("plate.txt", "w", encoding="utf-8") as plate:
    plate.write("bread\n")
print("saved")

Ao rodar, a tela mostra apenas saved. O bread não vai para a tela: ele fica dentro de plate.txt, porque o write rodou enquanto o arquivo estava aberto. Depois o recuo acabou, o arquivo fechou e só então o print rodou. Não há close neste programa, e você não deve acrescentá-lo nem depois do print nem dentro do recuo. O nome plate representa o arquivo aberto, mas só até o recuo terminar. Com encoding="utf-8", as letras são guardadas como texto, e o w continua apagando as palavras antigas que o arquivo tinha.

A linha do write está recuada sob o with, e é esse recuo que a coloca dentro dele. Já print("saved") não tem recuo; por isso fica fora e só roda se a parte de dentro chegar ao fim.

Se você escrever 1 / 0 sob esse mesmo recuo, o programa para e saved não aparece na tela. Mesmo assim o arquivo fecha: sair do recuo o fecha antes de o programa terminar por causa dessa parada. Essa linha não faz parte do programa desta página.

A próxima página trata do caminho do arquivo. Aqui o assunto é só fechá-lo.

O arquivo fecha quando o recuo termina

Resumindo: a tela mostra saved, plate.txt guarda bread e o programa não tem close. Se uma linha dentro do recuo fizer o programa parar, o arquivo ainda fecha e saved não aparece. Em seguida vem o caminho do arquivo.

🧠 Teste Seu Conhecimento

Pronto para Começar

Teste Seu Conhecimento

Desafie-se com este questionário interativo e veja o quão bem você entende o tópico

❓
5
Perguntas
🎯
70%
Para Passar
♾️
∞
Tempo
🔄
∞
Tentativas

📝 Instruções

  • Leia cada pergunta cuidadosamente
  • Selecione a melhor resposta para cada pergunta
  • Você pode refazer o quiz quantas vezes quiser
  • Seu progresso será mostrado no topo