Как правильно выйти из цикла?
В коде ниже выход происходит только в начале петли (при условии pressed "esc"). Подскажите, пожалуйста, каким образом можно прервать петлю в процессе проигрывания событий и не дожидаться завершения полного цикла, т.е. до time.sleep(5)?
import mouse
import keyboard
import time
#This is the list where all the events will be stored
events = []
#Waiting for 'ctrl' to be pressed
keyboard.wait("ctrl")
print('record')
#starting the recording
mouse.hook(events.append)
#Waiting for 'ctrl' to be pressed
keyboard.wait("ctrl")
print('playback...')
#Stopping the recording
mouse.unhook(events.append)
while True:
#sec sleep
time.sleep(5)
mouse.play(events)
#press to fin the script
if keyboard.is_pressed("esc"):
print('bye')
break
Для следующих вариантов результат тот же:
while True:
if keyboard.is_pressed("esc"):
mouse.play(events)
print('bye')
break
и
while True:
if keyboard.is_pressed("esc"):
print('bye')
break
mouse.play(events)
Ответы (1 шт):
Автор решения: Stanislav Volodarskiy
→ Ссылка
Исходный код mouse.play - простой цикл.
Скопируйте метод к себе, вставьте в цикл проверку не нажал ли пользователь Esc. Да, придётся разрешить зависимости вроде _os_mouse и _time, но это не сложно.