python制作程序关闭前删掉文件_如何管理一个临时目录,以保证在程序关闭时将其删除?...

它只在程序结束时删除所有内容(就像通常那样)。在

下面是我使用的代码:import tempfile

import shutil

import os

class TempDir(str):

""" container for temporary directory. Deletes directory when garbage

collected/zero references """

def __del__(self):

print "deleting temporary files in directory {}".format(self.__str__())

shutil.rmtree(self.__str__(), οnerrοr=delete_dir_handler)

def delete_dir_handler(listdir_fn, dirname, exception):

try:

for fileobj in listdir_fn(dirname):

os.remove(fileobj)

os.removedirs(dirname)

except (AttributeError, OSError, TypeError):

print exception[1]

print "Sorry. Couldn't delete directory {}.".format(dirname)

raise

test = TempDir(tempfile.mkdtemp())

和输出:

^{pr2}$

如果你在交互模式下运行它,它在你退出程序之前不会被删除。在$ python -i my program

>>> # pressed Ctrl-C here

KeyboardInterrupt

>>> # again, Ctrl-C

KeyboardInterrupt

>>> # Ctrl-D to exit

deleting temporary files in directory /var/folders/A9/A9xrfjrXGsq9Cf0eD2jf0U+++TI/-Tmp-/tmpMBGt5n

最后,如果在文件中添加raw_input('')行,则按Ctrl-C,它的行为将与program end完全相同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值