728x90
파이썬에서 코드 실행했을 때 굳이 엔터키를 누르지 않고 해당 키만 누르면 다음 명령을 실행해야 하는 경우가 간혹 존재한다. 이 경우 파이썬에서는 운영체제별로 모듈을 사용하면 된다.
해당 코드를 파이썬 코드에 작성하면 된다.
try:
# Windows용 코드
import msvcrt
def getkey():
"""단일키 누르는 것을 받아옴"""
return msvcrt.getch().decode('utf-8')
except ImportError:
# Linux & Mac 용 코드
import sys
import tty
import termios
def getkey():
"""단일키 누르는 것을 받아옴"""
fd = sys.stdin.fileno()
original_attributes = termios.tcgetattr(fd)
try:
tty.setraw(sys.stdin.fileno())
ch = sys.stdin.read(1)
finally:
termios.tcsetattr(fd, termios.TCSADRAIN, original_attributes)
return ch
try 구문에 있는 부분은 Windows에서 mscvrt 모듈을 사용하는 경우이다. Windows에서는 mscvrt 모듈을 사용하여 getch() 메서드를 사용하면 입력 키를 감지할 수 있는 getkey() 함수를 만들 수 있다.
만약 Linux나 Mac의 경우, mscvrt 모듈이 아닌 sys, tty, termios 모듈을 사용해야 한다. 또한 Windows에 비해 getkey() 함수 내의 코드가 상당히 복잡한 편이다.(이해할 필요는 없다. 우리는 이 기능들을 잘 이용하기만 하면 된다.) 해당 코드는 except 구문에 작성되어 있다.
이러한 부분을 이용하면, 콘솔로 미로 게임을 만들 때 방향키를 이용할 수 있는 등 다양하게 활용할 수 있다.
#Python
'Develop > Python' 카테고리의 다른 글
[Python] 폭탄 피하기 게임 코드 (0) | 2023.09.23 |
---|---|
[Python] pygame을 설치하고 활용해보자! (0) | 2023.09.08 |
[Python] TypeError: 'int' object is not callable 오류 원인/해결 (0) | 2023.05.25 |
[파이썬] tkinter을 활용한 계산기 프로그램 (0) | 2023.05.13 |
[Python][입문] 코드로 배워보는 강의 - 01. 파이썬 설치, print(), input(), 변수 (0) | 2023.04.15 |