On 6 August 2013 11:52, Chris Angelico <ros...@gmail.com> wrote: > On Tue, Aug 6, 2013 at 11:38 AM, Devyn Collier Johnson > <devyncjohn...@gmail.com> wrote: >> with open('/home/collier/pytest/sort.TXT') as file: >> sorted(file, key=str.casefold, reverse=True) >> >> >> Thanks for the advice Joshua. I find these tips very useful. However, how >> would I close the files, or would they close after the "with" construct is >> complete? > > > That's the whole point of 'with'. It calls open(),
To be pedantic, it does not. open is called by the time the with gets involved. > then calls > __enter__, and it guarantees to call __exit__ before executing any > code following the with block. With a file object, __exit__ will close > the file. To make it more obvious for Devyn¹, with is used any time you need a simple guarantee of when things are "closed", for any particular meaning. One popular usage, just as a taster, is with changing directories so that the original directory is restored upon completion of the sub-tasks. ¹ And so it doesn't look like I wrote a whole post to be pedantic -- http://mail.python.org/mailman/listinfo/python-list