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

时间:2017-06-28 09:37:50

标签: python temporary-files

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

  

tempfile.TemporaryFile:此函数创建临时文件,一旦关闭就会被销毁。

     

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

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

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

1 个答案:

答案 0 :(得分:1)

如果您只需要在 的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

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

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