| \section{\module{tempfile} --- |
| Generate temporary file names} |
| |
| \declaremodule{standard}{tempfile} |
| \modulesynopsis{Generate temporary file names.} |
| |
| \indexii{temporary}{file name} |
| \indexii{temporary}{file} |
| |
| |
| This module generates temporary file names. It is not \UNIX{} specific, |
| but it may require some help on non-\UNIX{} systems. |
| |
| The module defines the following user-callable functions: |
| |
| \begin{funcdesc}{mktemp}{\optional{suffix}} |
| Return a unique temporary filename. This is an absolute pathname of a |
| file that does not exist at the time the call is made. No two calls |
| will return the same filename. \var{suffix}, if provided, is used as |
| the last part of the generated file name. This can be used to provide |
| a filename extension or other identifying information that may be |
| useful on some platforms. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{TemporaryFile}{\optional{mode\optional{, |
| bufsize\optional{, suffix}}}} |
| Return a file (or file-like) object that can be used as a temporary |
| storage area. The file is created in the most secure manner available |
| in the appropriate temporary directory for the host platform. Under |
| \UNIX, the directory entry to the file is removed so that it is secure |
| against attacks which involve creating symbolic links to the file or |
| replacing the file with a symbolic link to some other file. For other |
| platforms, which don't allow removing the directory entry while the |
| file is in use, the file is automatically deleted as soon as it is |
| closed (including an implicit close when it is garbage-collected). |
| |
| The \var{mode} parameter defaults to \code{'w+b'} so that the file |
| created can be read and written without being closed. Binary mode is |
| used so that it behaves consistently on all platforms without regard |
| for the data that is stored. \var{bufsize} defaults to \code{-1}, |
| meaning that the operating system default is used. \var{suffix} is |
| passed to \function{mktemp()}. |
| \end{funcdesc} |
| |
| The module uses two global variables that tell it how to construct a |
| temporary name. The caller may assign values to them; by default they |
| are initialized at the first call to \function{mktemp()}. |
| |
| \begin{datadesc}{tempdir} |
| When set to a value other than \code{None}, this variable defines the |
| directory in which filenames returned by \function{mktemp()} reside. |
| The default is taken from the environment variable \envvar{TMPDIR}; if |
| this is not set, either \file{/usr/tmp} is used (on \UNIX{}), or the |
| current working directory (all other systems). No check is made to |
| see whether its value is valid. |
| \end{datadesc} |
| |
| \begin{funcdesc}{gettempprefix}{} |
| Return the filename prefix used to create temporary files. This does |
| not contain the directory component. Using this function is preferred |
| over using the \code{template} variable directly. |
| \versionadded{1.5.2} |
| \end{funcdesc} |
| |
| \begin{datadesc}{template} |
| \deprecated{2.0}{Use \function{gettempprefix()} instead.} |
| When set to a value other than \code{None}, this variable defines the |
| prefix of the final component of the filenames returned by |
| \function{mktemp()}. A string of decimal digits is added to generate |
| unique filenames. The default is either \file{@\var{pid}.} where |
| \var{pid} is the current process ID (on \UNIX{}), |
| \file{\textasciitilde\var{pid}-} on Windows NT, \file{Python-Tmp-} on |
| MacOS, or \file{tmp} (all other systems). |
| |
| Older versions of this module used to require that \code{template} be |
| set to \code{None} after a call to \function{os.fork()}; this has not |
| been necessary since version 1.5.2. |
| \end{datadesc} |