我有一个python脚本,它创建了很多临时文件。如果脚本由于ctrl + c中断而提前终止,我想在程序结束之前快速删除这些文件。Python ctrl + c,如果提前终止,执行函数
处理这个问题的pythonic方法是什么?
我有一个python脚本,它创建了很多临时文件。如果脚本由于ctrl + c中断而提前终止,我想在程序结束之前快速删除这些文件。Python ctrl + c,如果提前终止,执行函数
处理这个问题的pythonic方法是什么?
如果可能,请打开with
语句中的文件,或者使用try
语句与finally
块关闭文件。如果您使用tempfile
,关闭时文件将自动销毁;否则,您可能需要在finally
区块中自行删除它们。
http://docs.python.org/2/library/exceptions.html#exceptions.KeyboardInterrupt
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
cleanUp()
使用'尝试:最后:'语法是非常有用的,因为如果你的程序退出出于不同的原因不是'KeyboardInterrupt'(比方说,一个例外),你仍然可以得到您的临时。文件已删除。 –
@JosephDunn:+1。使用'with'或'try:finally:'或'tempfile'代替'try:除了:'_also_意味着你可以取消大部分可能已经写入成功案例的手动清理,使得代码更简单。 – abarnert
顺便说一句,'tempfile'使得Unix下的所有东西都变得非常简单,只要你选择正确的类......但在Windows中,很多情况仍然是一种痛苦。 (但是,与通过手动方式执行操作相比,通常还是要少一些痛苦。) – abarnert