pythoncross-platformtemporary-directory

Cross-platform way of getting temp directory in Python


Is there a cross-platform way of getting the path to the temp directory in Python 2.6?

For example, under Linux that would be /tmp, while under XP C:\Documents and settings\[user]\Application settings\Temp.


Solution

  • That would be the tempfile module.

    It has functions to get the temporary directory, and also has some shortcuts to create temporary files and directories in it, either named or unnamed.

    Example:

    import tempfile
    
    print tempfile.gettempdir() # prints the current temporary directory
    
    f = tempfile.TemporaryFile()
    f.write('something on temporaryfile')
    f.seek(0) # return to beginning of file
    print f.read() # reads data back from the file
    f.close() # temporary file is automatically deleted here
    

    For completeness, here's how it searches for the temporary directory, according to the documentation:

    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.