Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Fechamento de arquivo.

"(...) mesmo com erro garante e fechamento do arquivo!"

Não entendi.

esse tal de with fecha o arquivo automaticamente, é isso?

3 respostas

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?

solução

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!