Python에서 키 누르기 감지
키보드와 같은 입력 장치와 같은 하드웨어에 액세스해야하는 경우 Python에서 사용 가능한 모듈이있어 삶을 훨씬 쉽게 만들 수 있습니다. 이러한 모듈을 사용하면 시스템의 복잡성을 처리하지 않고도 원하는 작업을 쉽게 수행 할 수 있습니다.
이 기사에서는 Python의 모듈을 사용하여 키 누르기를 감지하는 방법을 배웁니다. Python에서 키 누르기를 감지하는 데 사용되는 모듈이 많이 있으며 그 중에서 가장 인기 있고 널리 사용되는 두 모듈은keyboard
및pynput
입니다.
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()
는 문자를 입력으로 취하고 사용자가 누른 키와 일치하면True
및False
를 반환합니다.
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_press
및on_release
의 두 가지 기능을 정의합니다. on_press
기능은 사용자가 키보드의 버튼을 누를 때 실행되며 사용자가 해당 버튼을 놓 자마자on_release
기능이 실행됩니다.
두 기능 모두 사용자가 눌렀다 놓은 키만 콘솔 창에 인쇄합니다. 요구 사항에 따라이 두 기능의 구현을 변경할 수 있습니다.
그런 다음 마지막에 키보드 이벤트를 수신하는 리스너가 있으며 그에 따라on_press
및on_release
기능을 실행합니다.