2013-07-21 37 views
6

Tôi có một pi mâm xôi ghi lại nhiệt độ và lưu trữ chúng trong cơ sở dữ liệu MySQL trên trang web của tôi. Tôi thường chơi với kịch bản, vì vậy tôi đang đánh ctrl+c trên tập lệnh đang chạy và thực thi lại nó. Tôi muốn phát hành đúng cách close() trên kết nối cơ sở dữ liệu. Làm thế nào tôi có thể chạy một dòng mã khi kịch bản được thoát trong python?Làm cách nào để thực thi mã khi một tập lệnh Python bị đóng?

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

# ... 

#if script closes: 
    #con.close() 

Trả lời

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

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

Mệnh finally được thực thi trên thành công cũng như trên lỗi (ngoại lệ).

Nếu bạn nhấn Ctrl-C, bạn sẽ nhận được một ngoại lệ KeyboardInterrupt.

0

hay:

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) 

Xem here để biết thêm.

Các vấn đề liên quan