Python:tempfile.mkdtemp和tempfile.TemporaryDirectory之间的区别

时间:2011-05-25 17:48:11

标签: python temporary-files

我需要创建一个临时目录,它将包含另一个命名目录和子文件。最后,命名目录和子文件将附加到tarball,并且可以删除临时目录。最初是要使用mkdtemp,但看起来TemporaryDirectory方法会自行删除?有人可以解释这些差异。

2 个答案:

答案 0 :(得分:6)

你是对的,唯一真正的区别是TemporaryDirectory会在完成后自行删除。它会让你做类似的事情:

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

当您离开with的范围时,临时目录将被删除。使用mkdtemp,您需要手动执行此操作。

答案 1 :(得分:3)

来自文档 tempfile.TemporaryFile()

  

此功能创建一个临时的   目录使用mkdtemp()(   提供的参数直接传递   到基础功能)。该   结果对象可以用作   上下文管理器(参见With Statement   上下文管理器)。完成后   背景(或破坏   临时目录对象),新的   创建了临时目录和所有   它的内容从中移除   文件系统。