是否可以在python中创建一段时间后删除的临时文件?我检查了tempfile库,它生成临时文件和目录。
tempfile.TemporaryFile:此函数创建临时文件,一旦关闭就会被销毁。
tempfile.NamedTemporaryFile:此函数接受参数 delete 。如果在调用函数时删除了 false ,则关闭时不会删除该文件。
我需要的是一个临时文件,即使在我关闭之后,我也应该能够用它的名字阅读一段时间。但是,应该在一段时间后自动删除。
在Python 2.7中执行此操作的最简单方法是什么?
答案 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
删除它,但请确保程序删除它,即使它在计时器结束前已停止。