python func_timeout 设置函数超时退出
使用func_timeout设置函数超时退出,使用func_set_timeout装饰器和func_timeout方法
from func_timeout import func_set_timeout,exceptions.FunctionTimedOut import time @func_set_timeout(3) def task(): print('hello world') time.sleep(5) return '执行成功_未超时' if __name__ == '__main__': try: print(task()) except exceptions.FunctionTimedOut: print('执行函数超时')
应用场景:用opencv链接网络摄像头,但是摄像头的地址不一定是正确的,或者是打开的,当错误的时候会直接报错,但是当地址正确却没有打开,或者网络限制的时候,会等上半天才返回,并且不报错,此时使用func_timeout进行处理
from func_timeout import func_timeout, FunctionTimedOut
def catch_video(path): start_time = time.time() try: cap = func_timeout(5, cv.VideoCapture, (path,)) if cap.isOpened(): open_time = time.time() - start_time message = 'video open time is :' + "{:.2f}".format(open_time) else: message = 'can not open the video.' cap.release() except FunctionTimedOut: message = 'open video is timeout' except: message = 'other error' # print(message) return message
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话