新聞中心
要終止Python程序,可以使用以下方法:

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


咨詢
建站咨詢
