open.read

Alex Martelli aleax at aleax.it
Thu Aug 21 02:23:20 EDT 2003


David Bear wrote:

> I was in a hurry to do something and I did
> 
> stuff = open("filename", "r").read()
> 
> then I realized, "hey I didn't close the file".
> 
> so python close it automagically?  Since I was doing python
> interactively I expect the interpreter closed the file for me but my
> guess is the above syntax is probably poor.  any comments?

It's very common use in classic Python, and sometimes handy
for interactive or near-one-liner use, but in any "serious" program
explicitly closing the file just as soon as you're done with it is
beter than relying on the interpreter closing it for you -- it will
make your code more usable in Jython, and taken as a habit
it will prevent some cases (not -- directly -- the above one) where
even in CPython you might hang on to resources longer than
necessary.  try/final is the way to GUARANTEE that some key
finalization code gets executed, by the way, in case you  need that.


Alex





More information about the Python-list mailing list