My first Python program

Chris Kaynor ckaynor at
Wed Oct 13 21:30:13 CEST 2010

On Wed, Oct 13, 2010 at 12:12 PM, Seebs <usenet-nospam at> wrote:

> On 2010-10-13, Jonas H. <jonas at> wrote:
> > Not really. Files will be closed when the garbage collector collects the
> > file object, but you can't be sure the GC will run within the next N
> > seconds/instructions or something like that. So you should *always* make
> > sure to close files after using them. That's what context managers were
> > introduced for.
> >      with open('foobar') as fileobject:
> >          do_something_with(fileobject)
> That makes sense.  I don't think it'd quite work in this case, because I
> want to open several files all at once, do a ton of work that populates
> them with files, and then close them all.
> This is a nice idiom, though.  In C, I've been sort of missing that idiom,
> which I first encountered in Ruby.  (I mean, spelled differently, but the
> same basic thing.)

For opening multiple files, you can either nest the with statements:
with open('foobar1') as foobar1:
   with open('foobar2') as foobar2:

or you can use the contextlib module to nest them in one line:
import contextlib
with contextlib.nested(open('foobar1'), open('foobar2')) as (foobar1,

> -s
> --
> Copyright 2010, all wrongs reversed.  Peter Seebach /
> usenet-nospam at
> <-- lawsuits, religion, and funny pictures
> <-- get educated!
> I am not speaking for my employer, although they do rent some of my
> opinions.
> --
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Python-list mailing list