【问题标题】:Python 3.4: Temporary files not being deleted automaticallyPython 3.4:临时文件不会被自动删除
【发布时间】:2017-09-28 01:03:42
【问题描述】:

如果您使用的是tempfile 库,那么您可能会遇到这样的情况:即使您的程序已经完成,临时文件也不会被自动删除。这对于会被多次使用的程序来说非常重要,因为一旦临时文件堆积起来,它的目录就会变得混乱。

【问题讨论】:

    标签: python python-3.x delete-file temporary-files


    【解决方案1】:

    这是问答环节。因此,这是我的解决方案。

    显然,tempfile.TemporaryFile 的默认设置不会自动删除您的临时文件,但在您的 tempfile.NamedTemporaryFile 中添加前缀可以:

    with tempfile.NamedTemporaryFile(prefix="anything_",
                                             dir=os.getcwd()) as tempf:
    
                '''put something'''
                tempf.seek(0)
    

    注意事项:

    • os.getcwd() 用于获取文件的当前目录。
    • 您的临时文件是anything_ + (random values)(即anything_23mem

    希望对你有帮助。

    【讨论】:

    • 问题是什么?
    • 这听起来像是针对 Python 人员的错误报告,而不是 Stack Overflow 问题。你的问题和你的解决方案都没有任何意义。我从来不需要提供prefix 来触发with 块退出时的自动删除,我也从来没有失败过自动删除(除了ctypes 或扩展实际上使解释器绕过清理而崩溃的情况)。如果这完全可行,则可能是明确使用工作目录作为存储位置(可能是因为您的TEMP 存储目录的权限有问题),与prefix 无关。
    • @ShadowRanger 我怀疑自动删除我的TEMP 文件夹中的临时文件不起作用。所以我去了那个目录(在运行我的脚本之后),我仍然在那里看到它们。为确保可以轻松监控它,我所做的下一件事是使临时文件的dir 与脚本目录相同。另外,我正在使用PC的管理员。所以我尝试运行脚本,它工作,但临时文件仍然存在。这就是为什么我要分享我的“解决方案”,如果有人会遇到同样的情况。
    猜你喜欢
    • 1970-01-01
    • 2015-09-23
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 2014-02-01
    • 2012-04-11
    相关资源
    最近更新 更多