2012-01-13 2 views
4

임시 파일을 만들기 위해 프리픽스와 함께 tempfile.mkdtemp을 사용했습니다. 이 결과로 내 tmp 폴더에 'tmp/myprefix{uniq-string}/'이라는 많은 다른 디렉토리가 생성됩니다.임시 파일을 사용하여 모든 임시 파일의 하위 디렉토리를 만듭니다.

이 임시 폴더를 만들려면 하위 폴더를 하나 만들고 주 디렉터리 아래에 있으므로 접두사는 실제로 tmp 'tmp/myprefix/{uniq-string}/'의 하위 폴더가됩니다.

또한 기본 tmp 디렉토리를 정의하기 위해 tempfile의 시스템을 무시하고 싶지 않습니다.

'prefix'및 'dir'매개 변수를 사용했지만 성공하지 못했습니다.

답변

10

당신이 디렉토리 폴더가 확인해야 디렉터리 인수를 사용하려면를 만들려고하는 것처럼

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

보인다. 이런 식으로 작동해야합니다 :

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 
+0

gettempdir()을 잊어 버렸습니다. 감사! – sutee

+1

사실,'os.makedirs (myTemp, exist_ok = True)'에 의해 if check를 스스로 삭제할 수 있습니다 – Fan

+0

exist_ok 매개 변수는 [3.2] (https://docs.python.org/3/library/)에 추가되었습니다. os.html # os.makedirs) – tharen

1

저에게 맞습니다. 미리 tmp 폴더를 만드셨습니까? 이 footest의 하위 ....

관련 문제