From e404a12a46485641ec69db0cf3bd507e210b31b4 Mon Sep 17 00:00:00 2001 From: Skip Montanaro Date: Fri, 9 May 2008 00:45:00 +0000 Subject: [PATCH] Add an example about using NamedTemporaryFile() to replace mktemp(). I'm unclear whether the verbatim text should have been indented or by how much. --- Doc/library/tempfile.rst | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Doc/library/tempfile.rst b/Doc/library/tempfile.rst index 59cca42ffaa..79fa391d1aa 100644 --- a/Doc/library/tempfile.rst +++ b/Doc/library/tempfile.rst @@ -167,6 +167,24 @@ The module defines the following user-callable functions: Use of this function may introduce a security hole in your program. By the time you get around to doing anything with the file name it returns, someone else may have beaten you to the punch. + :func:`mktemp` usage can be replaced easily with + :func:`NamedTemporaryFile`, passing it the `delete=False` parameter :: + + >>> f = NamedTemporaryFile(delete=False) + >>> print f.name + >>> f.write("Hello World!\n") + >>> f.close() + >>> os.unlink(f.name) + >>> f = NamedTemporaryFile(delete=False) + >>> f + ', mode 'w+b' at 0x384698> + >>> f.name + '/var/folders/5q/5qTPn6xq2RaWqk+1Ytw3-U+++TI/-Tmp-/tmpG7V1Y0' + >>> f.write("Hello World!\n") + >>> f.close() + >>> os.unlink(f.name) + >>> os.path.exists(f.name) + False The module uses two global variables that tell it how to construct a temporary name. They are initialized at the first call to any of the