Will file be closed automatically in a "for ... in open..." statement?

Cameron Simpson cs at zip.com.au
Wed Feb 17 21:22:49 EST 2016


On 18Feb2016 02:05, Mark Lawrence <breamoreboy at yahoo.co.uk> wrote:
>On 18/02/2016 01:29, jfong at ms4.hinet.net wrote:
>>The "for ... open ..." is definitely not a good design pattern. It opens a file at "for" block but leaves it closed somewhere in the sky.
>>
>
>Hardly, as all ready explained, but how about this
>
>handle = open('foo.txt')
>for line in handle :
>    ...do something...
>handle.close()
>
>Is that better?

As already discussed in this thread, not in the face of an exception inside the 
loop or some other change of flow control (early "return" statement etc).

I'm pretty sure jfong understands the issues now, certainly enough to make 
his/her own decisions on the benefits and risks of with versus "for ... open" 
and similar variants.

Cheers,
Cameron Simpson <cs at zip.com.au>



More information about the Python-list mailing list