使用NamedTemporaryDir而不是多个NamedTemperaryFiles
我正在编写一个创建临时文件并调用系列的库
处理这些文件的外部程序.有时这些外部
程序与输入文件以同一目录创建文件,因此
确保它们都被删除,必须暂时创建它们
目录,然后删除它.
我写了一个名为temporarydir类
标准库中的tempfile.NamedTemporaryFile.现在我是
使用名为temporaryFile创建单个文件,但是因为我是
将它们放入将被删除的目录中,我想知道
如果我可以简化事情(不必跟踪所有
使用tempfile.mkstemp()指定我的我
临时目录,并在退出时依赖目录删除
它与块.
有什么原因我应该自己跟踪每个临时文件
而不是删除整个目录?
我正在使用Linux,但我也会对跨平台感兴趣
考虑因素.
另外,代码在下面.这值得一提吗?
#名为temporaryFile的基于Python 2.5.2
#tempfile._temporaryFileWrapper
#
#原始版权(C)2001,2002,2003,2004,2005,2006 Python
#软件基金会;版权所有
#
#http://www.python.org/download/releases/2.5.2/license/
从tempfile导入mkdtemp
类名称为temporarydir(对象):
def __init __(self, *args,** kwargs):
self.name = mkdtemp(*args,** kwargs)
self.close_called = false
def __enter __(self):
返回自我
unlink = os.unlink
def关闭(自我):
如果不是self.close_called:
self.close_called = true
self.unlink(self.name)
def __del __(self):
self.close()
def __exit __(自我,exc,value,tb):
结果= self.file .__退出__(exc,value,tb)
self.close()
返回结果