Opening files without closing them

3c273 nospam at nospam.com
Tue Mar 7 13:33:25 EST 2006


"Robert Kern" <robert.kern at gmail.com> wrote in message
news:mailman.2794.1141683892.27775.python-list at python.org...
> Paul Rubin wrote:
> > Say that the open is inside the try block.  If the file can't be
> > opened, then 'open' raises an exception, 'f' doesn't get set, and then
> > the 'finally' clause tries to close f.  f might have been previously
> > bound to some other file (which still has other handles alive) and so
> > the wrong file gets closed.
>
> And even if 'f' wasn't bound to anything, you will get a NameError instead
of
> the exception that you're really interested in seeing.

Thanks to both of you. So in order to be thorough, should I be doing:
try:
    f=open('file')
except: IOError:
    print 'doesn't exist'
    so_something_else_instead()

try:
    contents = f.read()
finally:
    f.close()

Thanks again.
Louis





More information about the Python-list mailing list