在Python中获取临时目录的平台方式

是否有跨平台的方式在Python 2.6中获取temp目录的路径?

例如,在Linux下是/tmp ,而在XP C:Documents and settings[user]Application settingsTemp


那将是tempfile模块。

它具有获取临时目录的功能,并且还有一些快捷方式可以在其中创建临时文件和目录,既可以是已命名的,也可以是未命名的。

例:

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

为了完整起见,根据文档,以下是它如何搜索临时目录:

  • TMPDIR环境变量命名的目录。
  • TEMP环境变量命名的目录。
  • TMP环境变量命名的目录。
  • 平台特定的位置:
  • 在RiscOS上,由Wimp$ScrapDir环境变量命名的目录。
  • 在Windows上,依次为C:TEMPC:TMPTEMPTMP
  • 在所有其他平台上,依次为目录/tmp/var/tmp/usr/tmp
  • 作为最后的手段,当前的工作目录。

  • 这应该做你想做的事情:

    print tempfile.gettempdir()
    

    对于我在Windows上的我,我得到:

    c:temp
    

    并在我的Linux机器上得到:

    /tmp
    

    我用:

    import platform
    import tempfile
    
    tempdir = '/tmp' if platform.system() == 'Darwin' else tempfile.gettempdir()
    

    这是因为在MacOS上,即Darwin, tempfile.gettempdir()os.getenv('TMPDIR')返回一个值,如'/var/folders/nj/269977hs0_96bttwj2gs_jhhp48z54/T' ; 这是我不想要的!

    链接地址: http://www.djcxy.com/p/9249.html

    上一篇: platform way of getting temp directory in Python

    下一篇: How can I detect the operating system in Perl?