функции Python без прохождения циклов

Делаю скрипт, в котором при нажатии кнопки мыши должен выводиться текст 1 в течении 2-х секунд. Через 2 секунды после появления текста должен появляться текст 2. С бесконечным циклом все работает. Можно ли добиться того же результата без прохождения циклов, которые нагружают процессор Raspberry Zero.

import pynput
import time
from pynput import mouse    
t = time.time()
tst = 'not'
# Бесконечный цикл
for i in range(10000):
    # Функция отслеживания нажатия мыши
    def on_click(x, y, button, press):
        global tst
        global t        
        tst = 'test'            
        t = time.time()
    listener_mouse = mouse.Listener(on_click = on_click)
    listener_mouse.start()
    # Функция вывода текста            
    def start_stop():
        global t        
        if time.time() - t < 2:
            print('start', tst)
        else:
            print('__stop__', tst)
    if __name__ == '__main__':
        start_stop()

Ответы (1 шт):

Автор решения: vadim vaduxa
from pynput import mouse
import threading, datetime

def on_click(x, y, button, pressed):
    if pressed:
        print(f'{datetime.datetime.now().strftime("%H:%M:%S")} TEXT1 {x}, {y}')
        threading.Timer(2, lambda: print(f'{datetime.datetime.now().strftime("%H:%M:%S")} TEXT2 {x}, {y}')).start()

with mouse.Listener(on_click=on_click) as listener:
    listener.join()

out:

12:01:30 TEXT1 963, 490
12:01:32 TEXT2 963, 490
12:01:34 TEXT1 963, 491
12:01:34 TEXT1 1097, 516
12:01:36 TEXT2 963, 491
12:01:36 TEXT2 1097, 516
→ Ссылка