Есть ли функция Python, которую я могу использовать для условия типа "If condition is still true after (3) seconds then dosomething"(

Я запускаю opencv через django и пытаюсь сохранить данные в sqlite.

Я пытался использовать sleep() в библиотечном времени, но это только мешает моему веб-приложению работать.

color = (0, 0, 255)


time.sleep(3)
if color == (0, 0, 255):
   save time


У вас есть больше вариантов решения этой проблемы, здесь и здесь - вот некоторые примеры.

Пример со временем и циклом while:

import time

def your_func():
    #your code:
    #if color == (0, 0, 255):
    #save time

max_wait_time = 3.0 #the time you want in seconds
start_time = time.time()
while True:
    if (time.time() - start_time) >= max_wait_time:
        your_func()
        break

Пример с Timer():

from threading import Timer

def your_func():
  #your code:
  #if color == (0, 0, 255):
  #save time

t = Timer(3.0, your_func)
t.start()
Вернуться на верх