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.