2013-07-21 12 views
6

Mam raspberry pi, który rejestruje temperaturę i przechowuje je w bazie danych MySQL na mojej stronie. Często bawię się scenariuszem, więc trafiam na ctrl+c na działający skrypt i ponownie go wykonuję. Chciałbym poprawnie wydać close() na połączenie z bazą danych. Jak mogę uruchomić linię kodu po wyjściu skryptu z Pythona?Jak wykonać kod po zamknięciu skryptu Python?

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

# ... 

#if script closes: 
    #con.close() 

Odpowiedz

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

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

Klauzula finally jest wykonywany na sukces, jak również w przypadku błędu (wyjątku).

Jeśli naciśniesz Ctrl-C, otrzymasz wyjątek od KeyboardInterrupt.

0

czyli

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) 

Zobacz here aby uzyskać więcej informacji.

Powiązane problemy