我一直在使用带有前缀的tempfile.mkdtemp
来创建我的临时文件。这导致我的tmp文件夹中有很多不同的目录,其中包含“tmp/myprefix{uniq-string}/
”。
我想更改它并有一个子目录,以便我创建的临时文件夹都在一个主目录下,这样前缀实际上是tmp
'tmp/myprefix/{uniq-string}/
'的子文件夹。
另外,我不想覆盖tempfile
的系统来定义默认的tmp目录。
我尝试使用“prefix
”和“dir
”参数,但没有成功。
答案 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
....