[Python-Dev] Warn about mktemp once again? (original) (raw)

Giovanni Bajo rasky at develer.com
Tue Apr 29 15:34:24 CEST 2008


On 4/29/2008 2:18 PM, Nick Coghlan wrote:

Same here. In fact, is there a good reason to have mkstemp() return the > fd (except backward compatibility)?

Except for backwards compatibility: is there a good reason to keep os.mkstemp at all? Greg Ewing's use-case is one I've also had at times - ie. as a convenience function for creating a "somewhat temporary" file that is randomly named, but persists beyond the closing of the file. If the function doesn't stay in os it doesn't make any difference to me though :-) As of 2.6, Greg's use case is addressed by the new 'delete' parameter on tempfile.NamedTemporaryFile.

Then I personally don't have any objection to the removal of os.mkstemp.

Since we're at it, a common pattern I use is to create temporary file to atomically replace files: I create a named temporary file in the same directory of the file I want to replace; write data into it; close it; and move it (POSIX "move": rename with silent overwrite) to the destination file. AFAIK, this is allows an atomic file replacemente on most filesystems.

I believe this is a common useful pattern that could be handled in module tmpfile (especially since the final "rename" step requires a little care to be truly multiplatform).

Giovanni Bajo Develer S.r.l. http://www.develer.com



More information about the Python-Dev mailing list