[Python-Dev] Warn about mktemp once again?

Greg Ewing greg.ewing at canterbury.ac.nz
Wed Apr 30 01:42:54 CEST 2008

Guido van Rossum wrote:

> Why? You can flush it and then all the data is on the disk.

That might be all right on Unix, but I would be
worried that having the file open could prevent
some other things being done with it on some
platforms, such as renaming. You might also want
to pass the file name on to some other process.

> The whole point of [Named]TemporaryFile is to automate the cleanup as
> well as the creation.

The docs (at least up to 2.5) don't make it at all
clear that this is the *whole* point of *both*
these functions.

The doc for NamedTemporaryFile seems to disavow
any guarantee that you will be able to do anything
with the name while the file is open. If you can't
use the name while the file is open, and the file
ceases to exist when it's closed, then what use is
it to have the name?

The obvious conclusion is that the point of
NamedTemporaryFile is to give you a file that *doesn't*
go away when you close it, and has a name so you can
go on to do other things with it.

So I plead ignorance due to misleading documentation.


More information about the Python-Dev mailing list