您的位置:

导致python退出(Python终止)

本文目录一览:

如何查看python脚本自动退出原因

怎么样的自动退出。。。如果是直接双击.py文件的话,本来就是会在python for DOS里面运行完自动退出的,只要在代码结尾加一句raw_input()就好了

python pyqt5在使用多线程时自动退出是怎么回事?

线程只执行一次……让我来猜一猜。

你可能会认为创建一个线程去执行某个动作就完事了?

一段代码不管是在主线程里还是在新建的线程里,它都是按代码本身的规则那么执行的,该循环就循环,该结束就结束。

所以,我们建立一个线程去执行某个动作,主要就是让这个动作的执行不影响主程的执行,不要因为它导致主程序的某环节等待这个动作的结果。

举例来说,一个定时3秒去读一下某个文件,总不能做个循环,读一下文件,然后sleep3秒吧,那除了这个,什么也干不了,基本都是在【等待3秒】这里耗着了。解决办法就是做个线程去完成【读某个文件】,然后这个事完了之后、前再建一个同样的线程让它三秒后执行。

看下图:

这个sort_loop就是这样干的:

【红框2】就是主要的工作内容(对self.data进行收缩)

如果简简单单的就这,那它就执行一次就完事了,哪怕你把sort_loop放到新线程里,也是一样。

要在sort_loop里再新建一个线程,新线程还是执行sort_loop,于是就是这样的:

A把桌子擦了擦,把抹布塞给了B;

B把桌子擦了擦,把抹布塞给了C;

C把桌子擦了擦,把抹布塞给了D...

这才构成一个线程循环。

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)

扩展资料

有时当一个条件成立的情况下,需要终止程序,可以使用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程序运行后直接退出

returnbreak都可以终止函数的运行exit(0)#无错误退出exit(1)#有错误退出这两条语句一般都会加在程序的最后因为exit是迫使系统去终止程序的运行

python在重命名时黑框出现闪退

重命名时黑框出现闪退。

第一步首先找到我们平时编辑python后,将文件储存的所在文件夹的位置,尝试下双击,看是否能打开。第二步如果打不开或者闪退,可以尝试选择打开方式,选择Python应用程序或者文本编译器看看是否能够打开文件。如果尝试了双击,未打开,接着选择打开方式pthon,还是失败。然后选择平时的文本编译器Geany,成功打开了命名为comment。py的python文件。

第三步尝试用文本编译器执行该python文件,看看能否运行。结果显示可以成功运行。第四步尝试在完成后的程序末尾加上函数input(),加入这个函数后,相当于在等待你输入,这是一个还未完结的程序。再选择保存。第五步退出geany编译器,再次找到该python文件,尝试双击或者选择python程序打开该文件。问题就解决了。

mac本使用opencv打开摄像头导致python意外退出?

我再win上测试没有问题,

import cv2

cap = cv2.VideoCapture(0)

while 1:

ret, frame = cap.read()

k = cv2.waitKey(1)

if k == 27:

break

cv2.imshow("capture", frame)

cap.release()

cv2.destroyAllWindows()

实在不行试试cv+pygame

代码如下:

import pygame

import cv2

cap = cv2.VideoCapture(0)

ret, img = cap.read()

if not ret:

print("Can't read stream")

img = cv2.transpose(img)

print('shape:', img.shape)

pygame.init()

screen = pygame.display.set_mode((img.shape[0],img.shape[1]))

surface = pygame.surface.Surface((img.shape[0], img.shape[1]))

running = True

while running:

for event in pygame.event.get():

if event.type == pygame.QUIT:

running = False

ret, img = cap.read()

if not ret:

running = False

break

else:

img = cv2.transpose(img)

pygame.surfarray.blit_array(surface, img)

screen.blit(surface, (0,0))

pygame.display.flip()

pygame.quit()