Mike mentions an important point, and I've been bitten by the phenomenon Mike mentions---but only when *writing* to files. They should always be closed explicitly, as in
f = file(filename, 'w') f.write(somestring) f.close() On the other hand, I've never encountered a problem with the "for line in file(filename)" idiom. A similar time-saver is writing something like s = file(filename).read() which puts the entire file as a string in the variable s. In this case, as in the file iteration case, we save two lines of code and one variable. It may not sound like much, but f = file(filename) s = f.read() f.close() seems much more cumbersome to me, especially when doing a lot of file reads. In short, my experience is that explicitly closing a file is unnecessary when reading. I could be wrong, though, and I'd be very interested to see an example of either idiom above leading to problems. Michael -- Michael D. Hartl, Ph.D. CTO, Quark Sports LLC http://quarksports.com/ -- http://mail.python.org/mailman/listinfo/python-list