最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python捕獲全局的KeyboardInterrupt異常的方法實現(xiàn)

 更新時間:2024年08月20日 10:37:21   作者:Looooking  
KeyboardInterrupt異常是Python中的一個標準異常,它通常發(fā)生在用戶通過鍵盤中斷了一個正在運行的程序,本文主要介紹了Python捕獲全局的KeyboardInterrupt異常的方法實現(xiàn),感興趣的可以了解一下

當然,像下面這種情況。

你要是把所有代碼像下面那樣都放到 try, except 的情況,就當我什么也沒說。

import time

def main():
    print('before ...')
    time.sleep(10)
    print('after ...')


if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        print('\nKeyboardInterrupt ...')
    print('the end')
root@master ~/w/python3_learning# python3 test.py 
before ...
^C
KeyboardInterrupt ...
the end

一般情況下,程序運行過程當中要執(zhí)行的代碼量會比較大,一般用戶執(zhí)行 Ctrl + C 程序就報錯 KeyboardInterrupt 停止了。

import time

def main():
    print('before ...')
    time.sleep(10)
    print('after ...')


if __name__ == '__main__':
    main()
    print('the end')
root@master ~/w/python3_learning# python3 test.py 
before ...
^CTraceback (most recent call last):
  File "test.py", line 11, in <module>
    main()
  File "test.py", line 6, in main
    time.sleep(10)
KeyboardInterrupt

但是有時候,我們希望用戶在 Ctrl + C 之后再繼續(xù)執(zhí)行一些清理操作。

import sys
import time


def suppress_keyboard_interrupt_message():
    old_excepthook = sys.excepthook

    def new_hook(exctype, value, traceback):
        if exctype != KeyboardInterrupt:
            old_excepthook(exctype, value, traceback)
        else:
            print('\nKeyboardInterrupt ...')
            print('do something after Interrupt ...')
    sys.excepthook = new_hook


def main():
    print('before ...')
    time.sleep(10)
    print('after ...')


if __name__ == '__main__':
    suppress_keyboard_interrupt_message()
    main()
    print('the end')
root@master ~/w/python3_learning# python3 test.py 
before ...
^C
KeyboardInterrupt ...
do something after Interrupt ...

由于 suppress_keyboard_interrupt_message 函數(shù)中的 new_hook 是自定義的,所以你也不一定局限于只處理某種異常,甚至對所有異常做統(tǒng)一處理也是可以的。

到此這篇關(guān)于Python捕獲全局的KeyboardInterrupt異常的方法實現(xiàn)的文章就介紹到這了,更多相關(guān)Python KeyboardInterrupt異常內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實現(xiàn)環(huán)境隔離和幾種常見方法

    Python實現(xiàn)環(huán)境隔離和幾種常見方法

    在 Python 開發(fā)中,環(huán)境隔離是一個非常重要的實踐,它可以避免不同項目之間的依賴沖突,確保每個項目都能在獨立的環(huán)境中運行,以下是幾種常見的 Python 環(huán)境隔離方法,需要的朋友可以參考下
    2025-09-09
  • Python 繪圖和可視化詳細介紹

    Python 繪圖和可視化詳細介紹

    這篇文章主要介紹了Python 繪圖和可視化詳細介紹的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Python使用openpyxl生成、讀取、修改Excel

    Python使用openpyxl生成、讀取、修改Excel

    本文介紹了使用Python的openpyxl庫處理Excel文件的方法,包括生成、讀取和修改Excel文件,適用于辦公自動化場景,文中提供了完整代碼示例,并強調(diào)了從簡單到復(fù)雜逐步學(xué)習(xí)的重要性,需要的朋友可以參考下
    2026-05-05
  • python進程類subprocess的一些操作方法例子

    python進程類subprocess的一些操作方法例子

    這篇文章主要介紹了python進程類subprocess的一些操作方法例子,本文講解了Popen、wait、poll、kill、communicate等方法的實際操作例子,需要的朋友可以參考下
    2014-11-11
  • python plotly繪制直方圖實例詳解

    python plotly繪制直方圖實例詳解

    這篇文章主要介紹了python plotly繪制直方圖實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • Python基礎(chǔ)之hashlib模塊詳解

    Python基礎(chǔ)之hashlib模塊詳解

    這篇文章主要介紹了Python基礎(chǔ)之hashlib模塊詳解,文中有非常詳細的代碼示例,對正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • 如何解決Pycharm運行報錯No Python interpreter selected問題

    如何解決Pycharm運行報錯No Python interpreter selected

    這篇文章主要介紹了如何解決Pycharm運行時No Python interpreter selected問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • python結(jié)合QT實現(xiàn)簡單的圖書管理系統(tǒng)

    python結(jié)合QT實現(xiàn)簡單的圖書管理系統(tǒng)

    這篇文章主要介紹了一個基于Python和PyQt5的圖書管理系統(tǒng)開發(fā)教程,適合Python初學(xué)者學(xué)習(xí),文中的示例代碼講解詳細,感興趣的小伙伴可以了解下
    2026-02-02
  • python實現(xiàn)K最近鄰算法

    python實現(xiàn)K最近鄰算法

    這篇文章主要為大家詳細介紹了python實現(xiàn)K最近鄰算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • python求一個字符串的所有排列的實現(xiàn)方法

    python求一個字符串的所有排列的實現(xiàn)方法

    這篇文章主要介紹了python求一個字符串的所有排列的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02

最新評論

伊吾县| 泰和县| 瓦房店市| 阳新县| 同德县| 安西县| 吉林省| 岱山县| 闻喜县| 石嘴山市| 什邡市| 忻城县| 洛川县| 阿合奇县| 宁武县| 金沙县| 铅山县| 门源| 双流县| 建瓯市| 和政县| 油尖旺区| 益阳市| 晋州市| 保康县| 五峰| 博兴县| 津市市| 同仁县| 土默特右旗| 贵溪市| 甘洛县| 聊城市| 道孚县| 永年县| 舒城县| 永城市| 太仆寺旗| 竹山县| 平昌县| 嘉义县|