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.
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
Teste Seu Conhecimento
Desafie-se com este questionário interativo e veja o quão bem você entende o tópico
📝 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