亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何用Python捕獲SIGINT?

如何用Python捕獲SIGINT?

冉冉說 2019-06-13 17:10:21
如何用Python捕獲SIGINT?我正在開發一個python腳本,它可以啟動多個進程和數據庫連接。我時不時地想用一個克特+C信號,我想做些清理。在Perl中,我會這樣做:$SIG{'INT'} = 'exit_gracefully';sub exit_gracefully {     print "Caught ^C \n";     exit (0);}我怎么用Python來模擬這個呢?
查看完整描述

3 回答

?
慕森王

TA貢獻1777條經驗 獲得超3個贊

將您的處理程序注冊到signal.signal就像這樣:

#!/usr/bin/env pythonimport signalimport sysdef signal_handler(sig, frame):
        print('You pressed Ctrl+C!')
        sys.exit(0)signal.signal(signal.SIGINT, signal_handler)print('Press Ctrl+C')signal.pause()

改編自這里.

更多關于signal可以找到這里.


查看完整回答
反對 回復 2019-06-13
?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

您可以將其視為異常(KeyboardInterruption),就像任何其他異常一樣。創建一個新文件并使用以下內容從shell中運行它,以了解我的意思:

import time, sys

x = 1while True:
    try:
        print x
        time.sleep(.3)
        x += 1
    except KeyboardInterrupt:
        print "Bye"
        sys.exit()


查看完整回答
反對 回復 2019-06-13
  • 3 回答
  • 0 關注
  • 1072 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號