2013-08-16 76 views

回答

5

如果可能,请打开with语句中的文件,或者使用try语句与finally块关闭文件。如果您使用tempfile,关闭时文件将自动销毁;否则,您可能需要在finally区块中自行删除它们。

+2

使用'尝试:最后:'语法是非常有用的,因为如果你的程序退出出于不同的原因不是'KeyboardInterrupt'(比方说,一个例外),你仍然可以得到您的临时。文件已删除。 –

+0

@JosephDunn:+1。使用'with'或'try:finally:'或'tempfile'代替'try:除了:'_also_意味着你可以取消大部分可能已经写入成功案例的手动清理,使得代码更简单。 – abarnert

+0

顺便说一句,'tempfile'使得Unix下的所有东西都变得非常简单,只要你选择正确的类......但在Windows中,很多情况仍然是一种痛苦。 (但是,与通过手动方式执行操作相比,通常还是要少一些痛苦。) – abarnert

0

可以捕捉和处理KeyboardInterrupt,或设置退出处理程序atexit。另外,tempfile