Python: различия между tempfile.mkdtemp и tempfile.TeoraryDirectory - PullRequest
8 голосов
/ 25 мая 2011

Мне нужно создать временный каталог, в котором будет находиться другой именованный каталог и подфайлы.В конце именованный каталог и подфайлы будут добавлены в tar-архив, а временный каталог может быть удален.Первоначально собирался использовать mkdtemp(), но похоже, что метод TemporaryDirectory() удаляет сам себя?Может кто-нибудь объяснить разницу.

Ответы [ 2 ]

7 голосов
/ 25 мая 2011

Вы правы в том, что единственная реальная разница в том, что TemporaryDirectory удалит себя, когда это будет сделано.Это позволит вам сделать что-то вроде:

with tempfile.TemporaryDirectory() as dir:
   do_stuff_with(dir)

, когда вы покинете область действия with, временный каталог будет удален.С mkdtemp вам нужно будет сделать это вручную.

5 голосов
/ 25 мая 2011

Из документации tempfile.TeilitaryDirectory () :

Эта функция создает временный каталог с помощью mkdtemp () (предоставленные аргументы передаются непосредственно в базовую функцию),Полученный объект можно использовать в качестве диспетчера контекста (см. «С помощью диспетчера контекста оператора»).По завершении контекста (или уничтожения объекта временного каталога) вновь созданный временный каталог и все его содержимое удаляются из файловой системы.

...