刪除追溯有沒有辦法讓回溯從上來,當你打按Ctrl +Ç, 即提高在Python腳本KeyboardInterrupt
?在Python上按Ctrl-C
回答
import sys
try:
# your code
except KeyboardInterrupt:
sys.exit(0) # or 1, or whatever
是最簡單的方式,假設你還是想你的時候退出得到一個Ctrl + c。
如果你想陷阱它沒有一個try /除外,您可以使用signal
module使用recipe like this,但似乎爲我工作在Windows ..
趕上KeyboardInterrupt
:與一試
try:
# do something
except KeyboardInterrupt:
pass
搭上了IT/except塊:
while True:
try:
print "This will go on forever"
except KeyboardInterrupt:
pass
try:
your_stuff()
except KeyboardInterrupt:
print("no traceback")
不另外請注意,在默認情況下解釋以狀態碼128 +退出平臺上的SIGINT值(在大多數系統上爲2)。
import sys, signal
try:
# code...
except KeyboardInterrupt: # Suppress tracebacks on SIGINT
sys.exit(128 + signal.SIGINT) # http://tldp.org/LDP/abs/html/exitcodes.html
如果放棄說shell命令'sleep 10',退出代碼的確在我的系統上是130。然而,在''KeyboardInterrupt'在Python中引發的退出代碼只是1.考慮[這個關閉的錯誤](https://bugs.python.org/issue14229)。因此,我相信答案是不一致的。 –
試試這個:
import signal
signal.signal(signal.SIGINT, lambda x,y: sys.exit(0))
這樣你就不需要在異常處理程序包的一切。
鑑於'SIGINT'被觸發,退出狀態0是根本錯誤的。理想情況下,必須保留返回的退出狀態,就好像沒有發現異常一樣。 –
不完全理解lambda;你能否在這裏解釋「x,y:」的用法,而不僅僅是「x:」? – Locane
@Locane這是因爲[this](https://docs.python.org/3.7/library/signal.html#signal.signal),基本上signal.signal的第二個參數是一個函數'處理程序',需要兩個參數。 爲了清晰起見,x和y可以像這樣重命名爲:signal.signal(signal.SIGINT,lambda signal_number,current_stack_frame:sys.exit(0))' – oidualc
import sys
try:
print("HELLO")
english = input("Enter your main launguage: ")
print("GOODBYE")
except KeyboardInterrupt:
print("GET LOST")
- 1. 宏無需選擇CtrlC
- 2. Python 3.5 - 在按鈕上放置按鈕
- 3. 在Python上更改按鈕樣式2.7.9
- 4. Python在ENTER按鍵上退出循環
- 5. Python - 按下tkinter上的按鈕
- 6. 如何讓一個按鈕在Python上按下3
- 7. 在Python中長按
- 8. 短暫的屏幕上的按鈕基維在Python上
- 9. 按下按鈕在python多處理環境下在tcp流上發送消息
- 10. Python的字典上的按鍵
- 11. Python的Tkinter的,按鈕上市
- 12. 掛在按鈕上按
- 13. 定位按鈕在Python
- 14. 與CSV按城市在Python
- 15. 在python中跟蹤按鍵
- 16. 在Python中掃描按鍵
- 17. iPhone在按鈕上按下按鈕
- 18. 按鈕上的Json查詢按下python/django
- 19. 用python按下android手機上的按鈕
- 20. 如何使用python + mechanize按下asp.net網站上的按鈕
- 21. Python/Pygame:如何使按鈕在屏幕上縮放按鈕和屏幕大小?
- 22. 當按下按鈕時,python腳本會自動在Raspberry Pi上運行
- 23. 如何在Python中上下/移動和按鍵事件
- 24. Flask - 在按鈕OnClick事件上調用python函數
- 25. Python - 在同一行上按順序打印字母表
- 26. 爲什麼python的selenium button.click()工作在twitter按鈕上?
- 27. 我想在我的網站上執行python腳本的按鈕
- 28. 使用SqlAlchemy + python在日期時間字段上按時過濾
- 29. 如何在Linux機器上模擬Python中的按鍵
- 30. Python tk:將一個按鈕放在筆記本小部件上
鑑於信號是SIGINT,退出狀態爲0是根本錯誤的。理想情況下,必須保留返回的退出狀態,就好像沒有發現異常一樣。評論「或1」不夠好;期望**的**退出碼爲1。 –
@A-B-B如果用Ctrl-C退出程序不是退出程序的標準非錯誤方式,則退出代碼爲1。如果此退出方式表示成功,則表示預期退出代碼爲零。僅僅因爲這樣使用Ctrl-C可能不是一個好主意,並不意味着人們不會這樣做(並且我已經使用過這樣的程序)。 – agf
當然,但在您的答案中包含退出代碼0作爲默認選擇仍然看起來如此。 –