詳解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和區(qū)別
詳解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和區(qū)別
os._exit() 和 sys.exit()
os._exit() vs sys.exit()
概述
Python的程序有兩中退出方式:os._exit(), sys.exit()。本文介紹這兩種方式的區(qū)別和選擇。
os._exit()會(huì)直接將python程序終止,之后的所有代碼都不會(huì)繼續(xù)執(zhí)行。
sys.exit()會(huì)引發(fā)一個(gè)異常:SystemExit,如果這個(gè)異常沒有被捕獲,那么python解釋器將會(huì)退出。如果有捕獲此異常的代碼,那么這些代碼還是會(huì)執(zhí)行。捕獲這個(gè)異常可以做一些額外的清理工作。0為正常退出,其他數(shù)值(1-127)為不正常,可拋異常事件供捕獲。
舉例說明
#!/usr/local/bin/env python
import os, sys
try:
sys.exit(0)
except:
print('die')
finally:
print('cleanup')
try:
os._exit(0)
except:
print('die')
print('os.exit')#不打印直接退出了
輸出:
die cleanup
區(qū)別
綜上,sys.exit()的退出比較優(yōu)雅,調(diào)用后會(huì)引發(fā)SystemExit異常,可以捕獲此異常做清理工作。os._exit()直接將python解釋器退出,余下的語句不會(huì)執(zhí)行。
一般情況下使用sys.exit()即可,一般在fork出來的子進(jìn)程中使用os._exit()
一般來說os._exit() 用于在線程中退出
sys.exit() 用于在主線程中退出。
exit() 跟 C 語言等其他語言的 exit() 應(yīng)該是一樣的。
os._exit() 調(diào)用 C 語言的 _exit() 函數(shù)。
builtin.exit 是一個(gè) Quitter 對(duì)象,這個(gè)對(duì)象的 call 方法會(huì)拋出一個(gè) SystemExit 異常。
exit(0)和exit(1)
exit(0):無錯(cuò)誤退出
exit(1):有錯(cuò)誤退出
退出代碼是告訴解釋器的(或操作系統(tǒng))
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- python中的sys模塊和os模塊
- python os.system執(zhí)行cmd指令代碼詳解
- 解決python中os.system調(diào)用exe文件的問題
- Python調(diào)用系統(tǒng)命令os.system()和os.popen()的實(shí)現(xiàn)
- Python3.5內(nèi)置模塊之os模塊、sys模塊、shutil模塊用法實(shí)例分析
- python sys,os,time模塊的使用(包括時(shí)間格式的各種轉(zhuǎn)換)
- python中os和sys模塊的區(qū)別與常用方法總結(jié)
- python中內(nèi)置庫os與sys模塊的詳細(xì)介紹
相關(guān)文章
Python中的google authenticator認(rèn)證過程
文章介紹了使用Python 3.7生成Google Authenticator所需密鑰的步驟,包括使用pyotp模塊生成密鑰、生成二維碼圖片以及通過客戶端掃描二維碼進(jìn)行二次認(rèn)證的實(shí)現(xiàn)原理2024-11-11
手把手教你pycharm專業(yè)版安裝破解教程(linux版)
這篇文章主要介紹了 手把手教你pycharm專業(yè)版安裝破解教程(linux版),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09

