我需要创建一个临时目录,它将包含另一个命名目录和子文件。最后,命名目录和子文件将附加到tarball,并且可以删除临时目录。最初是要使用mkdtemp,但看起来TemporaryDirectory方法会自行删除?有人可以解释这些差异。
答案 0 :(得分:6)
你是对的,唯一真正的区别是TemporaryDirectory
会在完成后自行删除。它会让你做类似的事情:
with tempfile.TemporaryDirectory() as dir:
do_stuff_with(dir)
当您离开with
的范围时,临时目录将被删除。使用mkdtemp
,您需要手动执行此操作。
答案 1 :(得分:3)
来自文档 tempfile.TemporaryFile():
此功能创建一个临时的 目录使用mkdtemp()( 提供的参数直接传递 到基础功能)。该 结果对象可以用作 上下文管理器(参见With Statement 上下文管理器)。完成后 背景(或破坏 临时目录对象),新的 创建了临时目录和所有 它的内容从中移除 文件系统。