2013-07-21 3 views
6

У меня есть малина pi, которая регистрирует температуру и хранит их в базе данных MySQL на моем веб-сайте. Я часто играю со сценарием, поэтому я нажимаю ctrl+c на скрипт и выполняю его. Я хотел бы правильно отправить close() на подключение к базе данных. Как запустить строку кода при выходе сценария в python?Как выполнить код при закрытии скрипта Python?

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

# ... 

#if script closes: 
    #con.close() 

ответ

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

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

Предложение finally выполняется на успех, а также об ошибке (исключение).

Если вы нажмете Ctrl-C, вы получите исключение KeyboardInterrupt.

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 для получения дополнительной информации.

Смежные вопросы