Как во время цикла отсчитать время в else и отключить программу?

while True:
      bounding_box = {'top': 540, 'left': 872, 'width': 178, 'height': 74}
      sct = mss()
      img = np.array(sct.grab(bounding_box))
      rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
      pcm6 = pytesseract.image_to_string(rgb, lang='rus', config='--psm 6')
      pcm7 = pytesseract.image_to_string(rgb, lang='rus', config='--psm 7')
      

      if (((fuzz.ratio(pcm6.lower(), 'Повторить')) > 50 or (fuzz.ratio(pcm7.lower(), 'Повторить')) > 50) or ('Повторить' in pcm6.lower() or 'Повторить' in pcm7.lower() or 'Повторить' in pcm6.lower() or 'Повторить' in pcm7.lower())):
               #print("Это Повторить!")
               pyautogui.mouseDown(942, 586)
               time.sleep(0.01)
               pyautogui.mouseUp(942, 586)
      else:	
               print("Неть ...")
===================================================================================
Суть в кратце. Цикл проверяет есть ли кнопка на экране в очередь на сервер, если есть, то сразу на него нажимает, а в противном случае пишет нету. Я хотел реализовать автоматическое выключение скрипта, если в else "неть" появляется более 20 секунд, а значит очередь подошла и я вошел, ведь кнопка обычно загружается за 5 секунд. Хоть убей не понимаю как работать с этим, если он все время обновляется и все time.monotonic() катятся в пропасть...
  • Вопрос задан
  • 163 просмотра
Решения вопроса 1
@rPman
Тебе нужно засечь момент начала отсчета (это запуск программы и вывод "Неть"?), просто заведи переменную - timeStart им присвой ей текущую дату now, соответственно сравнивай на каждой итерации значение этой переменной с текущим временем и если разница больше требуемой - выполняй свой код (отключение программы? sys.exit() )
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы