Sort lines in a plain text file alphanumerically

Joshua Landau joshua at landau.ws
Tue Aug 6 07:44:34 EDT 2013


On 6 August 2013 11:52, Chris Angelico <rosuav at gmail.com> wrote:
> On Tue, Aug 6, 2013 at 11:38 AM, Devyn Collier Johnson
> <devyncjohnson at 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



More information about the Python-list mailing list