2013-07-21 26 views
6

Ich habe einen Raspberry Pi, der die Temperatur speichert und sie in einer MySQL-Datenbank auf meiner Website speichert. Ich spiele oft mit dem Skript, also treffe ich ctrl+c auf das laufende Skript und führe es erneut aus. Ich möchte close() in der Datenbankverbindung richtig ausgeben. Wie kann ich eine Codezeile ausführen, wenn das Skript in Python beendet wird?Wie wird Code ausgeführt, wenn ein Python-Skript geschlossen wird?

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

# ... 

#if script closes: 
    #con.close() 

Antwort

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

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

Die finally Klausel ist bei Erfolg als auch auf Fehler (Ausnahme) ausgeführt.

Wenn Sie Strg-C drücken, erhalten Sie eine Ausnahme KeyboardInterrupt.

0

oder:

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) 

Siehe here für weitere Informationen.

Verwandte Themen