Where does python tempfile writes its files?

Loic Duros picture Loic Duros · Aug 16, 2013 · Viewed 11.1k times · Source

In python you can create a tempfile as follows:

tempfile.TemporaryFile()

And then you can write to it. Where is the file written in a GNU/Linux system? I can't seem to find it in the /tmp directory or any other directory.

Thank you,

Answer

Martijn Pieters picture Martijn Pieters · Aug 16, 2013

Call the tempfile.gettempdir() function:

Return the directory currently selected to create temporary files in.

You can change where temporary files are created by setting the tempfile.tempdir value to different directory if you want to influence where temporary files are created. Quoting from the documentation, if that value is None the rules are as follows:

If tempdir is unset or None at any call to any of the above functions, Python searches a standard list of directories and sets tempdir to the first one which the calling user can create files in. The list is:

  1. The directory named by the TMPDIR environment variable.
  2. The directory named by the TEMP environment variable.
  3. The directory named by the TMP environment variable.
  4. A platform-specific location:
    • On RiscOS, the directory named by the Wimp$ScrapDir environment variable.
    • On Windows, the directories C:\TEMP, C:\TMP, \TEMP, and \TMP, in that order.
    • On all other platforms, the directories /tmp, /var/tmp, and /usr/tmp, in that order.
  5. As a last resort, the current working directory.