2013-07-21 7 views
6

मेरे पास रास्पबेरी पीआई है जो तापमान रिकॉर्ड करता है और उन्हें मेरी वेबसाइट पर एक MySQL डेटाबेस में संग्रहीत करता है। मैं अक्सर स्क्रिप्ट के साथ खिलौना करता हूं, इसलिए मैं चल रहे स्क्रिप्ट पर ctrl+c मार रहा हूं और इसे फिर से निष्पादित कर रहा हूं। मैं डेटाबेस कनेक्शन पर close() को ठीक से जारी करना चाहता हूं। जब स्क्रिप्ट पाइथन में निकलती है तो मैं कोड की एक पंक्ति कैसे चला सकता हूं?पाइथन लिपि बंद होने पर कोड कैसे निष्पादित करें?

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 देखें।

संबंधित मुद्दे