python代码运行到一半终止_Python 程序运行时卡住,既不报错,也不停止,也不动,是什么原因?...

光看这程序似乎也没有什么问题,而且卡住也有多种原因,题主的情况也不一定是卡住——我猜题主是根据一直没有输出来判断的吧。

还是先讲我的处理方案——调试。看来题主用的是类似于PyCharm的IDE,可以用IDE自带的调试器。我还是习惯于传统的print+logging+pysnooper:logging是自带的日志模块,可以选择输出高于某一级别(info、debug、error、critical等)的输出内容,可以调节为比较低的等级以输出更多的信息;另一个pysnooper是第三方的,输出的内容更详细,操作也更简单,就是耗费时间更长。有关的教程请题主自己查阅。找到明显的错误之后,就是百度+谷歌+stackoverflow大法即可。

另外,如果题主的程序是真的卡住了——比如说无法执行语句之类的“假死”状态(自己定义的,不能保证规范性),这种情况下一般应用程序会显示“无响应”,但也不敢保证微软bug导致没有显示出来。我的一种判断方法是进入任务管理器,看“python.exe”的进程的CPU和内存占用量。如果短时间内迅速上升,超出预期,就要考虑是不是“假死”。另外一种判断就是在异常处理中专门捕获KeyboardInterrupt异常,在程序持续无输出的时候按Ctrl+C尝试中断。具体操作如下:

try:

# ... your code here

except Exception as e: # catch all kinds of exceptions

if e.__class__ == KeyboardInterrupt: # if keyboard interruption is caught

raise KeyboardInterrupt # halt the program

# ... your remaining code here

由此可以用Ctrl+C中断,此时Python应当会抛出异常,同时会给出程序回溯的路线,这个时候可以依此找出卡住的语句。如果发现如此设置还是中止不了................

(PS:如果做了上述的异常处理,并加入了logging或pysnooper等,可能在控制台上看不到回溯,这个时候就要查看日志文件里的内容。)

非常抱歉,我也没办法.........毕竟这种情况也很罕见,没有太多的经验............

以上。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值