[newbie] File handle destroyed before pending write is executed?

Peter Otten __peter__ at web.de
Fri Sep 12 03:48:28 EDT 2003


Pieter Lust wrote:

> # main module
> import logmodule
> 
> mylog = logmodule.logfile()
> mylog.enter('something')
> # pass
> # end main module
> 
> # logmodule
> class logfile:
> def __init__(self):
> self.fh = file('log.txt', 'w')
> def __del__(self):
> self.fh.close()
> def enter(self, text):
> self.fh.write('%s\n' % text)
> # end logmodule
> 
> After running the main module, log.txt was empty, though no exceptions
> were raised. To get the text into the file, I had to add the pass
> statement that's commented out above.
> 
> In debug mode, the line cursor jumps from the last line of the main
> module into the __del__() method of the logmodule, but not into the
> enter() method.
> 

Your code works here. I wuuld delete all logmodule.pyc files in your path
and restart the IDE. Maybe there is something out of sync.

(By the way, I think the __del__() method is superfluous)

Peter





More information about the Python-list mailing list