在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
环境变量命名的目录。 Wimp$ScrapDir
环境变量命名的目录。 C:TEMP
, C:TMP
, TEMP
和TMP
。 /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'
; 这是我不想要的!