Python에서 키 누르기 감지

Sahil Bhosale 2023년10월10일
  1. Python에서keyboard 모듈을 사용하여 키 누름 감지
  2. Python에서pynput 모듈을 사용하여 키 누름 감지
Python에서 키 누르기 감지

키보드와 같은 입력 장치와 같은 하드웨어에 액세스해야하는 경우 Python에서 사용 가능한 모듈이있어 삶을 훨씬 쉽게 만들 수 있습니다. 이러한 모듈을 사용하면 시스템의 복잡성을 처리하지 않고도 원하는 작업을 쉽게 수행 할 수 있습니다.

이 기사에서는 Python의 모듈을 사용하여 키 누르기를 감지하는 방법을 배웁니다. Python에서 키 누르기를 감지하는 데 사용되는 모듈이 많이 있으며 그 중에서 가장 인기 있고 널리 사용되는 두 모듈은keyboardpynput입니다.

Python에서keyboard 모듈을 사용하여 키 누름 감지

keyboard 모듈을 사용하면 키보드를 완전히 제어 할 수 있으며 선택할 수있는 사전 정의 된 다양한 방법이 제공됩니다. 이러한 방법을 사용하면 키보드 작업을 훨씬 쉽게하고 키보드에서 사용자의 물리적 키 누르기를 감지 할 수 있습니다.

keyboard모듈을 설치하려면 명령 프롬프트 또는 터미널에서 아래 명령을 실행하십시오.

pip3 install keyboard

먼저keyboard모듈을 프로그램으로 가져와야합니다. 여기에서는 Python read_key(), is_pressed()on_press_key()에서 키 누르기를 감지하는 세 가지 방법을 사용합니다.

import keyboard

while True:
    if keyboard.read_key() == "p":
        print("You pressed p")
        break

while True:
    if keyboard.is_pressed("q"):
        print("You pressed q")
        break

keyboard.on_press_key("r", lambda _: print("You pressed r"))

출력:

You pressed p
You pressed q
You pressed r

read_key()는 사용자가 키보드에서 눌렀 던 키를 읽고 원하는 키 (이 경우p) 인 경우You pressed p메시지를 인쇄합니다. read_key()함수는 문자를 반환합니다.

is_pressed()는 문자를 입력으로 취하고 사용자가 누른 키와 일치하면TrueFalse를 반환합니다.

on_press_key()는 두 개의 매개 변수를 입력으로 취합니다. 첫 번째는 문자이고 두 번째는 함수입니다. 사용자가on_press_key()함수의 첫 번째 매개 변수로 지정된 키와 일치하는 키를 누르면 두 번째 매개 변수로 전달한 함수 만 실행됩니다.

Python에서pynput 모듈을 사용하여 키 누름 감지

pynput 모듈은 주로 마우스와 키보드와 같은 입력 장치를 감지하고 제어하는 데 사용됩니다. 그러나이 자습서에서는 키보드에서 키 누르기를 감지하는 데이 모듈을 사용하는 방법 만 볼 수 있습니다. 이 모듈을 사용하기 전에 먼저 아래 명령을 사용하여 설치해야합니다.

pip3 install pynput

이 모듈을 키 누름 감지에 사용하려면 먼저pynput모듈에서keyboard를 가져와야합니다.

from pynput import keyboard


def on_press(key):
    try:
        print("Alphanumeric key pressed: {0} ".format(key.char))
    except AttributeError:
        print("special key pressed: {0}".format(key))


def on_release(key):
    print("Key released: {0}".format(key))
    if key == keyboard.Key.esc:
        # Stop listener
        return False


# Collect events until released
with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()

출력:

Alphanumeric key pressed: a 
Key released: 'a' 
Alphanumeric key pressed: b
Key released: 'b'
special key pressed: Key.ctrl_l 
Key released: Key.ctrl_l

위의 출력은 사용자가 어떤 키를 눌렀는지에 따라 달라질 수 있습니다.

키 누르기를 감지하기 위해on_presson_release의 두 가지 기능을 정의합니다. on_press기능은 사용자가 키보드의 버튼을 누를 때 실행되며 사용자가 해당 버튼을 놓 자마자on_release기능이 실행됩니다.

두 기능 모두 사용자가 눌렀다 놓은 키만 콘솔 창에 인쇄합니다. 요구 사항에 따라이 두 기능의 구현을 변경할 수 있습니다.

그런 다음 마지막에 키보드 이벤트를 수신하는 리스너가 있으며 그에 따라on_presson_release기능을 실행합니다.

Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

관련 문장 - Python Input