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