使用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()
返回结果

# 回答1


如果此消息已发出几次,请接受我的道歉.我的
新闻阅读器声称,超时错误使消息无法
发布,但我认为它已经通过.
# 回答2


迈克尔·霍夫曼(Michael Hoffman)写道:
实际上,我需要使用shutil.rmtree,但是您明白了.
# 回答3


En Tue,2008年9月9日15:49:32 -0300,迈克尔·霍夫曼(Michael Hoffman)
<4G *******@sneakemail.comescribió:
看起来不错...
Windows不会让您删除非空目录.
self.file?
- -
Gabriel Genellina

标签: python

添加新评论