【问题标题】:Python: differences between tempfile.mkdtemp and tempfile.TemporaryDirectoryPython:tempfile.mkdtemp 和 tempfile.TemporaryDirectory 之间的区别
【发布时间】:2011-05-25 17:48:10
【问题描述】:

我需要创建一个临时目录来存放另一个命名目录和子文件。最后,命名目录和子文件将被附加到一个压缩包中,并且可以删除临时目录。最初打算使用mkdtemp(),但看起来TemporaryDirectory() 方法会自行删除?谁能解释一下区别。

【问题讨论】:

  • 文档最后一句很清楚

标签: python temporary-files


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    来自文档 tempfile.TemporaryDirectory():

    这个函数创建一个临时的 使用 mkdtemp() 的目录( 提供的参数直接传递 到底层函数)。这 结果对象可以用作 上下文管理器(参见 With 语句 上下文管理器)。完成时 上下文(或破坏 临时目录对象),新 创建临时目录和所有 它的内容从 文件系统。

    【讨论】:

    • 如果你不看最后一句话,请随意给我投反对票。最后一句非常清楚地解释了所提出的问题。
    • 我不记得在 SO 注册期间阅读过任何要求我具备一定程度的编程或开发能力的用户要求。并非我们所有人都以此为生,也不应该这样假设。我只是要求某人进一步向某些人“清楚”地解释记录的内容。
    • 因此使用 mkdtemp 会返回一个目录名以供使用。如何使用 TemporaryDirectory 创建子目录并将文件写入其中。我是否像使用目录名一样使用 TemporaryDirectory 对象?对于我们中的一些人来说,您甚至没有质疑的必要的后台信息不存在。
    猜你喜欢
    • 1970-01-01
    • 2021-12-25
    • 2020-05-10
    • 2014-09-20
    • 2010-10-28
    • 2015-10-04
    • 2012-08-12
    • 2011-02-18
    • 2019-12-21
    相关资源
    最近更新 更多