Python read() function returns empty string

file-io, python

Solution

When you reach the end of file (EOF) , the `.read` method returns `''`, as there is no more data to read.

>>> f = open('my_file.txt')
>>> f.read() # you read the entire file
'My File has data.'
>>> f.read() # you've reached the end of the file 
''
>>> f.tell() # give my current position at file
17
>>> f.seek(0) # Go back to the starting position
>>> f.read() # and read the file again
'My File has data.'

Doc links: `read()` `tell()` `seek()`

Note: If this happens at the first time you read the file, check that the file is not empty. If it's not try putting `file.seek(0)` before the `read`.

Problem

If I type this in Python: ``` open("file","r").read() ``` sometimes it returns the exact content of the file as a string, some other times it returns an empty string (even if the file is not empty). Can someone explain what does this depend on?

Original source

Related problems