7

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

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

# ...

#if script closes:
   #con.close()
4

2 回答 2

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

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

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

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

于 2013-07-21T20:20:13.233 回答
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)

请参阅此处了解更多信息。

于 2013-07-21T20:29:32.547 回答