删除追溯有没有办法让回溯从上来,当你打按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作为默认选择仍然看起来如此。 –