我有一个python类ReportGenerator,它需要临时目录来存储中间文件。 一旦ReportGenerator的对象被销毁,我的代码就需要删除临时文件夹。
在何处放置目录删除代码以确保一旦未引用对象,将删除临时文件夹。
在C ++中,删除类的析构函数中的文件夹是显而易见的。在python中有一个__del__
,但我从其他帖子中了解到,不建议在这种情况下使用它。所以一般来说什么是python中的正确方法,所以一个对象可以拥有一个资源并在它被销毁后释放?
答案 0 :(得分:2)
查看tempfile module。使用 tempfile.TemporaryFile 函数似乎符合您的需要。
答案 1 :(得分:0)
with
上下文中的 tempfile.TemporaryDirectory
可以满足您的需求。这来自examples for tempfile
:
# create a temporary directory using the context manager
>>> import tempfile
>>> with tempfile.TemporaryDirectory() as tmpdirname:
... print('created temporary directory', tmpdirname)
>>>
# directory and contents have been removed
退出with块时,递归删除目录及其内容。