2013-07-21 21 views
6

Ho un raspberry pi che registra la temperatura e li memorizza in un database MySQL sul mio sito web. Io spesso gioco con la sceneggiatura, quindi sto colpendo ctrl+c sullo script in esecuzione e ri eseguendolo. Vorrei rilasciare correttamente close() sulla connessione al database. Come posso eseguire una riga di codice quando lo script viene chiuso in python?Come eseguire il codice quando viene chiuso uno script Python?

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

# ... 

#if script closes: 
    #con.close() 

risposta

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

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

La clausola finally viene eseguito in caso di successo, così come in caso di errore (eccezione).

Se si preme Ctrl-C, si ottiene un'eccezione KeyboardInterrupt.

0

o:

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) 

Vedi here per maggiori informazioni.

Problemi correlati