使用tempfile为我的所有tempfiles创建一个子目录

时间:2012-01-13 19:23:25

标签: python temporary-files

我一直在使用带有前缀的tempfile.mkdtemp来创建我的临时文件。这导致我的tmp文件夹中有很多不同的目录,其中包含“tmp/myprefix{uniq-string}/”。

我想更改它并有一个子目录,以便我创建的临时文件夹都在一个主目录下,这样前缀实际上是tmp'tmp/myprefix/{uniq-string}/'的子文件夹。

另外,我不想覆盖tempfile的系统来定义默认的tmp目录。

我尝试使用“prefix”和“dir”参数,但没有成功。

2 个答案:

答案 0 :(得分:12)

要使用dir参数,必须确保dir文件夹存在。这样的事情应该有效:

import os
import tempfile

#define the location of 'mytemp' parent folder relative to the system temp
sysTemp = tempfile.gettempdir()
myTemp = os.path.join(sysTemp,'mytemp')

#You must make sure myTemp exists
if not os.path.exists(myTemp):
    os.makedirs(myTemp)

#now make your temporary sub folder
tempdir = tempfile.mkdtemp(suffix='foo',prefix='bar',dir=myTemp)

print tempdir

答案 1 :(得分:1)

适合我。您是否事先创建了tmp文件夹?

>>> import tempfile
>>> tempfile.mkdtemp(dir="footest", prefix="fixpre")
OSError: [Errno 2] No such file or directory: 'footest/fixpregSSaFg'

看起来确实尝试创建footest ....

的子文件夹