Skip to main content

tempfile

Allocate temporary files and directories whose paths are unique and which clean themselves up. Used widely by test runners, by build systems, and by code that needs to stage data on disk.

Source-of-record: Lib/tempfile.py, tempfile docs.

High-level​

Function / classReturns
TemporaryFile(mode='w+b', buffering=-1, encoding=None, newline=None, suffix=None, prefix=None, dir=None, *, errors=None)Anonymous file (POSIX) / hidden file (Windows).
NamedTemporaryFile(...)Same; with a visible .name.
SpooledTemporaryFile(max_size=0, ...)In-memory until threshold, then disk.
TemporaryDirectory(suffix=None, prefix=None, dir=None, ignore_cleanup_errors=False, *, delete=True)Context manager dir.
mkstemp(suffix=None, prefix=None, dir=None, text=False)(fd, abspath); caller cleans up.
mkdtemp(suffix=None, prefix=None, dir=None)New directory; caller cleans up.
gettempdir() / gettempdirb()Default directory (str/bytes).
gettempprefix() / gettempprefixb()Default prefix.

Defaults and search order​

tempfile selects the temp directory in this order: TMPDIR, TEMP, TMP, then /tmp, /var/tmp, /usr/tmp on POSIX or C:\\TEMP, C:\\TMP, \\TEMP, \\TMP on Windows.

tempfile.tempdir = path overrides the default for the process.

Cleanup semantics​

Class / functionCleanup
TemporaryFileUnlinked at open (POSIX) or on close (Windows).
NamedTemporaryFileUnlinked on close; suppress with delete=False.
SpooledTemporaryFileAs NamedTemporaryFile once rolled.
TemporaryDirectoryRecursive remove on __exit__ / cleanup().
mkstemp / mkdtempCaller responsibility.

Gopy status​

AreaState
All factoriesComplete.
Spooled filesComplete.
TemporaryDirectory with delete=False (3.12+)Complete.
Atomic name generationComplete; uses os.urandom.

Reference​

  • CPython 3.14: tempfile.
  • Lib/tempfile.py.
  • module/tempfile/. gopy port.