"(...) mesmo com erro garante e fechamento do arquivo!"
Não entendi.
esse tal de with fecha o arquivo automaticamente, é isso?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
"(...) mesmo com erro garante e fechamento do arquivo!"
Não entendi.
esse tal de with fecha o arquivo automaticamente, é isso?
Oi Vinícius ! Como vai?
Não é o "with" sozinho que fecha o arquivo, mas a combinação dele com o open().
O "with" é um statement do python usado para lidar com exceções, e cuidar de procedimentos padrão.
Quando você escreve apenas open ( ), se você quiser lidar com o erro descrito pelo professor, ou seja, lidar com essa exceção, você precisaria usar o close() logo em seguido, como no exemplo do professor.
logo = open('palavras.txt', 'r')
data = logo.read()
logo.close()Mas isso ainda não garantiria que todas as exceções seriam cobertas. O código ainda pode dar algum tipo de erro.
Como a função do "with" é de cuidar de exceções e procedimentos padrão para deixar o código mais limpo, quando usado com o open(), ele lida com esse tipo de erro automaticamente. E no caso desse tipo específico de erro, o procedimento padrão seria de fechar o arquivo automaticamente.
Fez sentido?
Caraca... Faz todo o sentido. Obrigado pela aula.
Claro que ainda preciso ver mais sobre esse "with" pra saber como e quando usá-lo.
Achei esses artigos aqui que falam um pouco mais sobre isso!
O último é a documentação oficial, mas acho ela um pouco confusa de entender, então melhor dar uma olhada nesses outros antes:
https://www.geeksforgeeks.org/with-statement-in-python/
https://www.pythonforbeginners.com/files/with-statement-in-python
https://docs.python.org/2.5/whatsnew/pep-343.html
Que bom que consegui te ajudar =)
Bons Estudos!