Python: различия между tempfile.mkdtemp и tempfile.TemporaryDirectory
Мне нужно создать временный каталог, в котором будет размещен другой именованный каталог и вложенные файлы. В конце концов, именованный каталог и вложенные файлы будут добавлены в tarball и временный каталог может быть удален. Первоначально собирался использовать mkdtemp, но похоже, что метод TemporaryDirectory удаляет себя? Может кто-нибудь объяснить различия.
2 ответов
вы правы в том, что единственная реальная разница заключается в том, что TemporaryDirectory
удалит себя, когда это будет сделано. Это позволит вам сделать что-то вроде:
with tempfile.TemporaryDirectory() as dir:
do_stuff_with(dir)
когда вы выходите из области with
временный каталог будут удалены. С mkdtemp
, вам нужно будет сделать это вручную.
из документации tempfile.TemporaryFile():
эта функция создает временный каталог с использованием mkdtemp () ( предоставленные аргументы передаются напрямую к основной функции). Этот результирующий объект может использоваться как context manager (см. оператор With Context Managers). По завершении контекст (или разрушение временный объект каталога), новый создан временный каталог и все его содержание снято с файловая система.