On Wed, Feb 17, 2016 at 3:04 PM, <jf...@ms4.hinet.net> wrote: > Thanks for these detailed explanation. Both statements will close file > automatically sooner or later and, when considering the exceptions, "with" is > better. Hope my understanding is right. > > But, just curious, how do you know the "for" will do it? I can't find any > document about it from every sources I know. Very depressed:-( >
It's not the 'for' loop that does it. The for loop is kinda like this: _temp = open("foo.txt") _temp.read() # do stuff, do stuff _temp = None When you stop holding onto an object, Python can get rid of it. When that happens is not promised, though - and if you have a reference loop, it might hang around for a long time. But when a file object is disposed of, the underlying file will get closed. ChrisA -- https://mail.python.org/mailman/listinfo/python-list