feof status (was: Re: [Python-Dev] Rehabilitating fgets)
Fredrik Lundh
fredrik@effbot.org
Sun, 7 Jan 2001 22:29:46 +0100
Guido van Rossum wrote:
> Bizarre (given what I know about zero-length read). But in the above
> code, you can replace "if not fp.feof()" with "if line". In other
> words, you just have to carry the state over within your program.
and if that's too hard, just hide the state in
a class:
class FileWrapper:
def __init__(self, file):
self.__file = file
self.__line = None
def __more(self):
# try reading another line
if not self.__line:
self.__line = self.__file.readline()
def eof(self):
self.__more()
return not self.__line
def readline(self):
self.__more()
line = self.__line
self.__line = None
return line
file = open("myfile.txt")
file = FileWrapper(file)
while not file.eof():
print repr(file.readline())
</F>