掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
要終止Python程序,可以使用以下方法:

1、使用sys.exit()函數(shù)
sys.exit()函數(shù)是Python標(biāo)準(zhǔn)庫中的一個函數(shù),用于終止程序的執(zhí)行,首先需要導(dǎo)入sys模塊,然后調(diào)用sys.exit()函數(shù),這將引發(fā)一個SystemExit異常,如果沒有捕獲該異常,程序?qū)⒔K止。
示例代碼:
import sys
print("開始執(zhí)行程序")
當(dāng)滿足某個條件時,終止程序
if True:
sys.exit("程序終止")
print("程序繼續(xù)執(zhí)行")
2、使用os._exit()函數(shù)
os._exit()函數(shù)是Python標(biāo)準(zhǔn)庫中的一個函數(shù),用于終止程序的執(zhí)行,首先需要導(dǎo)入os模塊,然后調(diào)用os._exit()函數(shù),這將引發(fā)一個KeyboardInterrupt異常,如果沒有捕獲該異常,程序?qū)⒔K止。
示例代碼:
import os
import signal
def handler(signum, frame):
raise SystemExit("程序終止")
signal.signal(signal.SIGINT, handler)
print("開始執(zhí)行程序")
當(dāng)按下Ctrl+C時,終止程序
os._exit("程序終止")
3、使用KeyboardInterrupt異常
當(dāng)用戶按下鍵盤上的中斷鍵(通常是Ctrl+C)時,Python會引發(fā)一個KeyboardInterrupt異常,可以通過捕獲該異常來終止程序。
示例代碼:
try:
print("開始執(zhí)行程序")
# 模擬長時間運行的程序
while True:
pass
except KeyboardInterrupt:
print("程序終止")
4、使用操作系統(tǒng)命令行工具
在命令行中運行Python程序時,可以使用特定的命令來終止程序,在Windows系統(tǒng)中,可以使用taskkill命令;在Linux和macOS系統(tǒng)中,可以使用kill命令,這些命令需要提供Python進程的ID(PID)。
在Python程序中,可以使用os.getpid()函數(shù)獲取當(dāng)前進程的PID,可以在命令行中使用相應(yīng)的命令來終止程序。
示例代碼:
import os
import signal
import time
import subprocess
from threading import Thread
def run_program():
print("開始執(zhí)行程序")
while True:
time.sleep(1)
print("程序正在運行...")
if os.getpid() == int(subprocess.check_output("pgrep python", shell=True)):
print("找到Python進程,準(zhǔn)備終止")
break
print("準(zhǔn)備終止程序")
time.sleep(2) # 等待用戶確認是否終止程序
if input("按回車鍵確認終止程序:") == "":
print("正在終止程序...")
os.kill(os.getpid(), signal.SIGINT) # 發(fā)送SIGINT信號,觸發(fā)KeyboardInterrupt異常,從而終止程序
print("程序已終止")
else:
print("取消終止程序")
run_program() # 遞歸調(diào)用自身,繼續(xù)運行程序
return None # 避免無限遞歸導(dǎo)致棧溢出的問題
# 如果需要退出遞歸,可以在這里添加適當(dāng)?shù)耐顺鰲l件和邏輯,例如設(shè)置一個計數(shù)器或者使用其他方式來控制遞歸深度等。
# 注意:這種方法可能會導(dǎo)致一些問題,例如資源泄漏、數(shù)據(jù)不一致等,因此請謹慎使用。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流