Roy Smith <[EMAIL PROTECTED]> writes: > The "right" way to do this is: > > for line in file ("filename"): > whatever > > The file object returned by file() acts as an iterator. Each time through > the loop, another line is read and returned (I'm sure there is some > block-level buffering going on at a low level).
I disagree. That's the *convenient* way to do it, and perfectly acceptable in many situations. But not all Python interpreters will close the file when for loop ends. Likewise, if you get an exception during the processing, the file may not get closed properly. Those things may matter to you, in which case the "right" way is: data = open("filename") try: for line in data: whatever finally: data.close() Guido has made a pronouncement on open vs. file. I think he prefers open for opening files, and file for type testing, but may well be wrong. I don't think it's critical. <mike -- Mike Meyer <[EMAIL PROTECTED]> http://www.mired.org/home/mwm/ Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information. -- http://mail.python.org/mailman/listinfo/python-list