I really don't understand why python still doesn't have such a function. I also don't agree to use the following
f.tell() == os.fstat(f.fileno()).st_size
The main reason is f.tell()
doesn't likely to work for some special conditions.
The method works for me is like the following. If you have some pseudocode like the following
while not EOF(f):
line = f.readline()
" do something with line"
You can replace it with:
lines = iter(f.readlines())
while True:
try:
line = next(lines)
" do something with line"
except StopIteration:
break
This method is simple and you don't need to change most of you code.