pythontimeout(设置函数超时退出)
最近碰到⼀个场景
⽤opencv链接⽹络摄像头,但是摄像头的地址不⼀定是正确的,或者是打开的,当错误的时候会直接报错,但是当地址正确却没有打开,或者⽹络限制的时候,会等上半天才返回,并且不报错
,这哪⾥⾏,我都⽤pthon了,还能不知道⼈⽣苦短嘛~
于是⼀顿操作猛如虎~好吧,多线程、信号量、巴拉巴拉,算了,还是问问度娘
哇,这个页⾯很简单,是我喜欢的类型,果断⼀试~
(代码给⼤家贴出来~姑且⼀试)
import time
import timeout_decorator
@timeout_decorator.timeout(6)
def test():
time.sleep(5)
return5
aaa = test()
print(aaa)
然鹅,理想是美好的,现实是⾻感的。
报错信息
AttributeError: module 'signal' has no attribute 'SIGALRM'
罢了,⽼夫再
(此⽅法留下,以后linux中⽤)
终于(其实也就看了两三个⽂章)让我到⼀个⼀样简单的(还有好⼏个⽅法,我⽤那⼏个⽅法证明了我的懒~)代码如下:
import time
from func_timeout import func_set_timeout
@func_set_timeout(3)
def task():
while True:
print('hello world')
time.sleep(1)
if __name__ =='__main__':
task()
运⾏结果如下
奈斯~ 是我想要的结果~
最后调⽤摄像头代码如下
import cv2
from func_timeout import func_set_timeoutlinux下的sleep函数
@func_set_timeout(5)
def click_camera(in_url):
cap = cv2.VideoCapture(in_url)
return cap
in_url =input('camera_path:')
cap = click_camera(in_url)
ok
搞定~

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。