[python] 파이썬에서 화살표 키 입력 처리하기

파이썬에서 터미널로부터 화살표 키 입력을 받는 방법에 대해 알아보겠습니다. 화살표 키 입력은 보통 터미널에서 키보드의 방향키를 누를 때 발생하며, 이를 처리하기 위해서는 특정 라이브러리를 사용해야 합니다.

curses 라이브러리 사용하기

가장 일반적인 방법으로는 curses 라이브러리를 사용하는 것입니다. 이 라이브러리는 터미널 환경에서 문자 기반으로 화면을 제어하고 입력을 처리할 수 있는 기능을 제공합니다.

아래는 curses 라이브러리를 사용하여 화살표 키 입력을 처리하는 간단한 예제입니다:

import curses

def main(stdscr):
    # 화면 초기화
    stdscr.clear()
    stdscr.refresh()

    while True:
        key = stdscr.getch()
        if key == curses.KEY_UP:
            # 위쪽 화살표 키 입력 처리
            stdscr.addstr("Up arrow key pressed!")
        elif key == curses.KEY_DOWN:
            # 아래쪽 화살표 키 입력 처리
            stdscr.addstr("Down arrow key pressed!")
        elif key == curses.KEY_LEFT:
            # 왼쪽 화살표 키 입력 처리
            stdscr.addstr("Left arrow key pressed!")
        elif key == curses.KEY_RIGHT:
            # 오른쪽 화살표 키 입력 처리
            stdscr.addstr("Right arrow key pressed!")

if __name__ == "__main__":
    curses.wrapper(main)

위 예제는 curses.wrapper() 함수를 사용하여 main() 함수를 실행합니다. stdscr.getch() 함수를 사용하여 터미널로부터 사용자의 키 입력을 받고, 입력에 따라 각각의 화살표 키에 대한 처리를 수행합니다.

keyboard 라이브러리 사용하기

curses 라이브러리는 리눅스나 맥 OS와 같은 UNIX 기반 시스템에서만 동작합니다. 만약 윈도우에서 화살표 키 입력을 처리하고 싶다면, keyboard 라이브러리를 사용할 수 있습니다.

아래는 keyboard 라이브러리를 사용하여 화살표 키 입력을 처리하는 간단한 예제입니다:

import keyboard

def on_arrow_key(event):
    if event.name == 'up':
        # 위쪽 화살표 키 입력 처리
        print("Up arrow key pressed!")
    elif event.name == 'down':
        # 아래쪽 화살표 키 입력 처리
        print("Down arrow key pressed!")
    elif event.name == 'left':
        # 왼쪽 화살표 키 입력 처리
        print("Left arrow key pressed!")
    elif event.name == 'right':
        # 오른쪽 화살표 키 입력 처리
        print("Right arrow key pressed!")

keyboard.on_press_key("up", on_arrow_key)
keyboard.on_press_key("down", on_arrow_key)
keyboard.on_press_key("left", on_arrow_key)
keyboard.on_press_key("right", on_arrow_key)

keyboard.wait('esc')

위 예제는 keyboard.on_press_key() 함수를 사용하여 각각의 화살표 키에 대한 이벤트 핸들러를 등록합니다. 이벤트 핸들러는 해당 화살표 키를 눌렀을 때 수행되는 로직을 담고 있습니다.

마치며

위에서 소개한 방법을 사용하면 파이썬에서 터미널로부터 화살표 키 입력을 처리할 수 있습니다. 어떤 방법을 선택하든, 해당 라이브러리의 설치가 필요하며, 운영체제에 따라 호환성이 다를 수 있으니 참고해주시기 바랍니다.