在 Python 中创建临时文件,一段时间后将自动删除

Cod*_*mer 5 python temporary-files

是否可以在python中创建将在一段时间后删除的临时文件?我检查了临时文件生成临时文件和目录库。

tempfile.TemporaryFile:此函数创建临时文件,该文件将在关闭后立即销毁。

tempfile.NamedTemporaryFile:此函数接受参数delete。如果在调用函数时给 delete 赋值为false,则文件在关闭时不会被删除。

我需要的是一个临时文件,即使在我关闭它之后,我也应该能够在一段时间内使用它的名称读取它。但是,它应该会在一段时间后自动删除。

在 Python 2.7 中执行此操作的最简单方法是什么?

Art*_*yer 2

如果您只需要在 Python 程序中定期运行该文件,则可以将其用作上下文管理器:

def main(file_object):
    # Can read and write to file_object at any time within this function

if __name__ == '__main__':
    with tempfile.NamedTemporaryFile() as file_object:
        main(file_object)
        # Can still use file_object
    # file_object is referencing a closed and deleted file here
Run Code Online (Sandbox Code Playgroud)

如果您需要能够在Python程序之外打开它,比如在main结束之后,就像在异步运行的进程中一样,您可能应该寻找更持久的解决方案(例如允许用户指定文件名。)

如果您确实需要一个临时自动删除文件,您可以threading.Timer在一段时间后启动 a 将其删除,但请确保您的程序即使在计时器结束之前停止也将其删除。