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

Jeremy Leonard jrmy.lnrd at gmail.com
Thu Feb 18 13:02:56 EST 2016


On Tuesday, February 16, 2016 at 3:39:34 AM UTC-5, jf... at ms4.hinet.net wrote:
> I know
> 
>     with open('foo.txt') as f:
>         ...do something...
> 
> will close the file automatically when the "with" block ends. 
> 
> I also saw codes in a book:
> 
>     for line in open('foo.txt'):
> 	...do something...
> 
> but it didn't mention if the file will be closed automatically or not when the "for" block ends. Is there any document talking about this? and how to know if a file is in "open" or not?
> 
> --Jach Fong

One way of having a file automatically closed is to have something like:

with open("file_name") as foo:
    for x in foo:
       # process line x

Once the with block has completed, the file will be automatically closed. Sorry if this has already been posted, but I wasn't able to see it.


More information about the Python-list mailing list