+ 1

No output when i add a specific line, why ? - Python

Hello everyone, was writing a code that prints words from a file, I was wondering when I remove the word = file.read(), my code works just fine, but when I leave it there, the code does basically nothing or at least prints nothing can anyone explain why? Thanks in advance. def test(): file = open("words.txt","r") #word = file.read() for line in file : words = line.strip() if "z" == words[0] : print(words)

11th Aug 2020, 1:50 AM
Louai Belfounes
Louai Belfounes - avatar
3 Answers
+ 2
You can't read a file twice. If you read a file with 'word = file.read()', then if you try to read it again it will return an empty list. If you keep 'word = file.read()', then intead of 'for line in file:' you should use 'for line in word:' You can test this using this code:
gt; f = open('words.txt') print('first read:\n', f.read()) print('second read:\n', f.read()) <$ You'll notice the 'second read' shows nothing next to it.
11th Aug 2020, 3:06 AM
Aymane Boukrouh
Aymane Boukrouh - avatar
+ 1
Aymane Boukrouh Okey ! thanks a lot Aymane, it make sense ! Thanks again
11th Aug 2020, 3:08 AM
Louai Belfounes
Louai Belfounes - avatar
0
Aymane Boukrouh i tried what you suggested in using in line for word instead of for line in file, but didn't work ! i guesd it's not supposed to work at all reading it twice
11th Aug 2020, 3:18 AM
Louai Belfounes
Louai Belfounes - avatar