python退出程序
① 如何在python程序退出的時候,強制運行一些命令呢
程序一定會運行到clean()函數,但是,如果你代碼寫的多,你就應該知道,濫用try...except...會讓你非常痛苦。例如它突然給你列印一個運行異常: 1。你根本不知道是哪裡出了問題,也不知道具體出了什麼問題。為了找到問題,你必須讓程序把錯誤爆出來。但這樣一來,clean()又不能正常運行了。Python退出時強制運行一段代碼
有什麼辦法,既能讓程序報錯,又能在報錯已經還能運行clean()呢?
這個時候,我們就可以使用Python自帶的atexit這個模塊了。它的使用方法非常簡單:
import atexit
@atexit.register
def clean():
print('清理環境相關的代碼')
setup()
test()
這樣一來,我們不需要顯式調用clean函數了。無論程序正常結束,還是程序異常報錯,clean函數裡面的內容總會執行。
② Python程序運行後直接退出
returnbreak都可以終止函數的運行exit(0)#無錯誤退出exit(1)#有錯誤退出這兩條語句一般都會加在程序的最後因為exit是迫使系統去終止程序的運行
③ python里怎麼終止程序的執行
quit() exit()
執行到此命令時,程序終止。
如果是程序陷入死循環,想強制結束,則按Ctrl + C。這個特別關鍵。
Python的設計哲學是「優雅」、「明確」、「簡單」。因此,Perl語言中「總是有多種方法來做同一件事」的理念在Python開發者中通常是難以忍受的。Python開發者的哲學是「用一種方法,最好是只有一種方法來做一件事」。
在設計Python語言時,如果面臨多種選擇,Python開發者一般會拒絕花俏的語法,而選擇明確的沒有或者很少有歧義的語法。由於這種設計觀念的差異,Python源代碼通常被認為比Perl具備更好的可讀性,並且能夠支撐大規模的軟體開發。這些准則被稱為Python格言。在Python解釋器內運行import this可以獲得完整的列表。
擴展質料:
Python在執行時,首先會將.py文件中的源代碼編譯成Python的byte code(位元組碼),然後再由Python Virtual Machine(Python虛擬機)來執行這些編譯好的byte code。這種機制的基本思想跟Java,.NET是一致的。
然而,Python Virtual Machine與Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一種更高級的Virtual Machine。這里的高級並不是通常意義上的高級,不是說Python的Virtual Machine比Java或.NET的功能更強大。
而是說和Java 或.NET相比,Python的Virtual Machine距離真實機器的距離更遠。或者可以這么說,Python的Virtual Machine是一種抽象層次更高的Virtual Machine。
基於C的Python編譯出的位元組碼文件,通常是.pyc格式。
除此之外,Python還可以以交互模式運行,比如主流操作系統Unix/Linux、Mac、Windows都可以直接在命令模式下直接運行Python交互環境。直接下達操作指令即可實現交互操作。
參考資料:Python-網路
④ python中如何關閉程序
註:Image 沒有close方法
解決方案:
fp = open(fullfilename,'rb')
img = Image.open(fp)#這里改為文件句柄
fp.close()
⑤ python 中如何按esc鍵退出正在運行的程序
要看你在什麼平台上運行Python的程序了 我知道的有如下:
如果在putty.exe上 就是Ctrl + D;
如果在IDLE上 就是Ctrl + C, 可能ESC也會有用;
如果在pyscripter上 如果無限循環的東西基本在XP上就不能暫停了 只能強行把pyscripter用任務管理器關了 別的平台我沒試過;
⑥ Python中如何在一段時間後停止程序
用到threading的Timer,也類似單片機那樣子,在中斷程序中再重置定時器,設置中斷,python實例代碼如下:
import threading
import time
def change_user():
print('這是中斷,切換賬號')
t = threading.Timer(3, change_user)
t.start()
#每過3秒切換一次賬號
t = threading.Timer(3, change_user)
t.start()
while True:
print('我在爬數據')
time.sleep(1)
(6)python退出程序擴展閱讀
有時當一個條件成立的情況下,需要終止程序,可以使用sys.exit()退出程序。sys.exit()會引發一個異常:
1、如果這個異常沒有被捕獲,那麼python編譯器將會退出,後面的程序將不會執行。
2、如果這個異常被捕獲(try...except...finally),捕獲這個異常可以做一些額外的清理工作,後面的程序還會繼續執行。
註:0為正常退出,其他數值(1-127)為不正常,可拋異常事件供捕獲。另一種終止程序的方法os._exit()
一般情況下使用sys.exit()即可,一般在fork出來的子進程中使用os._exit()
採用sys.exit(0)正常終止程序,程序終止後shell運行不受影響。
採用os._exit(0)關閉整個shell,調用sys._exit(0)後整個shell都重啟了(RESTART Shell)。
⑦ Python怎麼設置按任意鍵退出
import msvcrt print("Press 'D' to exit...") while True: if ord(msvcrt.getch()) in [68, 100]: break
這樣,當用戶按下「D」或「d」時,則程序退出。
⑧ 怎樣讓python運行完了不直接退出
解決辦法有兩種:
1、代碼要對齊,一般Py腳本裡面加 input函數是不會自動退出的,正確如下:
⑨ python 函數調用不出來,程序直接退出且不報錯
return break 都可以終止函數的運行 exit(0) # 無錯誤退出 exit(1) # 有錯誤退出這兩條語句一般都會加在程序的最後 因為exit是迫使系統去終止程序的運行
⑩ 怎樣用python控制關閉一個.exe的程序
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
@Date:
@author
"""
__author__ = 'Sla'
__version__ = '1.0.0'
import pprint
import os
import time
import subprocess
def processkill():
_p = subprocess.Popen("C:\WINDOWS\system32\cmd.exe")
_pid = _p.pid
print "sub pid:", _pid
while _p.poll() == None:
time.sleep( 5 )
#kill subprocess after 5 seconds, if it is not done
if _p.poll() == None:
print "\nKill the subprocess\n"
if os.name == 'nt':
os.system('taskkill /PID %s /T /F' % _pid)
else:
os.system('kill %s' % _pid)
break
else:
if _p.returncode != 0:
print "\nsubprocess run Error"
else:
print "\nsubprocess run OK"
if __name__ == '__main__':
processkill()
——————————————————————————————————————
你可以測試一下,在5秒內打出exit就成功運行,不然就結束cmd進程