2

I have a Function which keep listening.. I want to stop the Listener after a particular time

import time
from pynput.keyboard import Listener

with Listner(on_press=onPress) as l:
    l.join 

this is an Endless Loop... i want to Stop the listener after a particular time

zvone
  • 18,045
  • 3
  • 49
  • 77
Mohit Jain
  • 25
  • 1
  • 6

2 Answers2

4

You could use timer:

from threading import Timer

from pynput.keyboard import Listener


def on_press(key):
    print(key)


with Listener(on_press=on_press) as l:
    Timer(5, l.stop).start()
    l.join()
    print('5 seconds passed')
makozaki
  • 3,772
  • 4
  • 23
  • 47
2
import time

from pynput.keyboard import Listener
from threading import Thread


def on_press(key):
    print(f"Key pressed: {key}")


with Listener(on_press=on_press) as ls:
    def time_out(period_sec: int):
        time.sleep(period_sec)  # Listen to keyboard for period_sec seconds
        ls.stop()

    Thread(target=time_out, args=(5.0,)).start()
    ls.join()
David Brabant
  • 41,623
  • 16
  • 83
  • 111