Peter Hansen wrote:

> > Remember, finalisers are not called when Python exits. So if you don't
> > explicitly close the file you are *writing* to, it may not be flushed
> > before being closed (by the OS because the process no longer exists).
>
> Ouch... I'd forgotten/never heard that I guess.  If that's true and all
> there is to the matter, I would think we'd all have encountered numerous
> times when our output files were not properly written.  Yet I've never
> encountered this situation myself, nor heard of anyone else ever having
> trouble as a result of it.  What gives?

that's probably because finalizers *are* called when Python exits.

$ python2.4
>>> f = open("out", "w")
>>> f.write(100000*"x")
>>> import os
>>> os._exit(1)
$ ls -l out
-rw-rw-r--    1 fredrik  fredrik     98304 May 11 20:18 out
$ rm out
$ python2.4
>>> f = open("out", "w")
>>> f.write(100000*"x")
>>> ^D
$ ls -l out
-rw-rw-r--    1 fredrik  fredrik    100000 May 11 20:19 out

</F>



-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to