Использование tempfile для создания подкаталога для всех моих временных файлов - PullRequest
5 голосов
/ 13 января 2012

Я использовал tempfile.mkdtemp с префиксом для создания моих временных файлов. Это приводит к большому количеству разных каталогов в моей папке tmp с tmp/myprefix{uniq-string}/.

Я хотел бы изменить это и иметь подкаталог так, чтобы все создаваемые мной временные папки находились в одном главном каталоге, чтобы префикс фактически являлся подпапкой tmp 'tmp/myprefix/{uniq-string}/'.

Кроме того, я не хочу переопределять систему tempfile для определения каталога tmp по умолчанию. * * 1010

Я пытался играть с параметрами 'prefix' и 'dir', но безуспешно.

Ответы [ 2 ]

12 голосов
/ 13 января 2012

Чтобы использовать аргумент 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 голос
/ 13 января 2012

У меня работает. Вы создали папку tmp заранее?

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

Похоже, что он пытается создать подпапку footest ....

...