偶然看到人家寫的腳本中使用了exit(0)和exit(1),就資料了一番,總結如下:
-
sys.exit(n) 退出程序引發SystemExit異常,可以捕獲異常執行些清理工作。n默認值為0,表示正常退出,其他都是非正常退出。還可以sys.exit(“sorry, goodbye!”); 一般主程序中使用此退出。
-
os._exit(n), 直接退出, 不拋異常, 不執行相關清理工作。常用在子進程的退出。
-
exit()/quit(),跑出SystemExit異常。一般在交互式shell中退出時使用。
-
python中exit(0) 和exit()1有什么功能?
在很多類型的操作系統里,exit(0) 可以中斷某個程序,而其中的數字參數則用來表示程序是否是碰到錯誤而中斷。exit(1) 表示發生了錯誤進行退出,而 exit(0) 則表示程序是正常退出的,退出代碼是告訴解釋器的(或操作系統)。這和我們學的布爾邏輯 0==False 正好相反,不過你可以用不一樣的數字表示不同的錯誤結果。比如你可以用exit(100) 來表示另一種和 exit(2)或 exit(1) 不同的錯誤。
Demo:
# -*- coding: utf-8 -*-
import os
import re
# 執行jmeter腳本
cmd = "~/uctest/apache-jmeter-2.11/bin/jmeter -n -t ~/uctest/jmx/UC_ORG.jmx"
tmp = os.popen(cmd).read()
print(tmp)
# 輸出執行結果
regex = re.compile('summary = .*?\(0.00%\)', re.S)
result = re.findall(regex, tmp)
if len(result) > 0:
print("successed")
exit(0)
else:
print("failed")
exit(1)