如何在Python脚本关闭时执行代码?

时间:2013-07-21 20:17:32

标签: python

我有一个记录温度的树莓派,并将它们存储在我网站上的MySQL数据库中。我经常玩脚本,所以我在运行的脚本上点击ctrl+c并重新执行它。我想在数据库连接上正确发出close()。如何在python中退出脚本时运行一行代码?

import MySQLdb
con = MySQLdb.connect(...)
cursor = con.cursor() 

# ...

#if script closes:
   #con.close()

2 个答案:

答案 0 :(得分:5)

import MySQLdb
con = MySQLdb.connect(...)
cursor = con.cursor() 

try:
    # do stuff with your DB    
finally:
    con.close()

finally子句在成功和错误(异常)时执行。

如果按Ctrl-C,则会出现KeyboardInterrupt异常。

答案 1 :(得分:0)

或:

import atexit

def close_db(con):
    con.close()
    # any other stuff you need to run on exiting

import MySQLdb
con = MySQLdb.connect(...)

# ...

atexit.register(close_db, con=con)

有关详细信息,请参阅here