Movatterモバイル変換


[0]ホーム

URL:


Simple looping question...

Ken Seehofkens at sightreader.com
Mon Apr 2 20:53:07 EDT 2001


"David Allen" <mda at idatar.com> says:> 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 linesfrom a> > file but no more.  How can I set the "range" of this loop to stop whenit> > 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.I don't believe you.>>> f = open(r'd:\qp\var\publish\index.html')>>> z = f.readlines()>>> type(z)<type 'list'>It would appear that readlines() returns a list.  Thereforethe entire file is read in to create that list before returning.On the other hand, I have written a generator class thatdoes what you are saying.  In order for readlines() to besmart, it would have to return a generator instead of a list.- Ken Seehofkseehof at neuralintegrator.comwww.neuralintegrator.com


More information about the Python-listmailing list

[8]ページ先頭

©2009-2025 Movatter.jp