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)

Boa noite, tudo bem? Pq o for não funciona no meu prompt? Não dá nenhum erro, mas não aparecem as linhas com as frutas.

>>> arquivo = open("palavras.txt","r")
>>> arquivo.read()
'banana\nmelancia\ncereja\nmorango\n'
>>> for linha in arquivo:
...              print(linha)
...
>>>
3 respostas

Já entendi. O .read() que eu executei antes do for, fez com que meu for ficasse vazio.

solução

Olá Giuliano.

Parabéns por identificar o que estava acontecendo, o fato é que depois que executou o read() o seu ponteiro de leitura ficou posicionado no final do arquivo então quando tentou ler no for não tinha mais conteúdo a ser lido.

Um caminho para contornar essa situação é utilizando o método seek, nele você passa como parâmetro a posição que quer que seu ponteiro fiquei, por exemplo no inicio do aquivo arquivo.seek(0).

>>> arquivo = open("palavras.txt","r")
>>> arquivo.read()
'banana\nmelancia\ncereja\nmorango'
>>> for linha in arquivo:
...     print(linha)
... 
>>> arquivo.seek(0)           
0   
>>> for linha in arquivo:
...     print(linha)      
... 
banana

melancia

cereja

morango
>>>

Expliquei com mais detalhes essa situação nesse tópico.

Novamente, parabéns por conseguir resolver e por trazer sua solução aqui para o fórum.

Bons Estudos.

Obrigado pela resposta. Abraço.