【发布时间】:2011-05-25 17:48:10
【问题描述】:
我需要创建一个临时目录来存放另一个命名目录和子文件。最后,命名目录和子文件将被附加到一个压缩包中,并且可以删除临时目录。最初打算使用mkdtemp(),但看起来TemporaryDirectory() 方法会自行删除?谁能解释一下区别。
【问题讨论】:
-
文档最后一句很清楚
我需要创建一个临时目录来存放另一个命名目录和子文件。最后,命名目录和子文件将被附加到一个压缩包中,并且可以删除临时目录。最初打算使用mkdtemp(),但看起来TemporaryDirectory() 方法会自行删除?谁能解释一下区别。
【问题讨论】:
您是对的,唯一真正的区别是TemporaryDirectory 将在完成后自行删除。它会让你做类似的事情:
with tempfile.TemporaryDirectory() as dir:
do_stuff_with(dir)
当您离开with 的范围时,临时目录将被删除。使用mkdtemp,您需要手动执行此操作。
【讨论】:
来自文档 tempfile.TemporaryDirectory():
这个函数创建一个临时的 使用 mkdtemp() 的目录( 提供的参数直接传递 到底层函数)。这 结果对象可以用作 上下文管理器(参见 With 语句 上下文管理器)。完成时 上下文(或破坏 临时目录对象),新 创建临时目录和所有 它的内容从 文件系统。
【讨论】: