Simple looping question...

David Allen mda at idatar.com
Mon Apr 2 19:57:11 EDT 2001


In article <mailman.986227337.10718.python-list at python.org>, "Vincent A.
Primavera" <vincent_a_primavera at netzero.net> wrote:

> Hello,
> 	In a piece of code similar to this I am trying to read all the lines from a
> file but no more.  How can I set the "range" of this loop to stop when it
> reaches the end of the file?
>               
>               for i in range(???):
>               a = fil1.readline()
>               print a

You're going at it from the wrong way around.  If 
you really want to do it based on the number of lines
in the file, do this:

lines = fil1.readlines()

for i in range(0, len(lines)):
  print lines[i]

but better would probably be to do this:

for line in fil1.readlines():
  print line

IIRC, that way you don't have to have the whole damn
file in memory.  Python is smart enough to assign
lines one at a time into 'line' rather than to 
create an actual array.

-- 
David Allen
http://opop.nols.com/
----------------------------------------
Great minds run in great circles.



More information about the Python-list mailing list