저는 현재 일부 노트북을 제어하기 위해 노트북에서 나무 딸기 파이로가는 프로젝트에 참여하고 있습니다. 필자는 Python으로 문자를 입력 할 수있는 코드를 작성했으며 문자에 따라 앞뒤로 이동합니다. 그러나 코드를 실행하려면 모든 문자 뒤에 Enter 키를 눌러야합니다. Enter 키를 누를 필요없이 인터페이스에서 문자를 감지하는 방법이 있습니까? tkinter에서 키 누르기를 바인드 할 수 있지만 ssh를 통해 키 입력을 할 수 없다는 것을 알고 있습니다. 미리 감사드립니다.바인딩 키 프레스
3
A
답변
2
curses
라이브러리를 사용할 수 있습니다.
screen.getch()
기능을 사용하여 누른 키를 가져올 수 있습니다. 키의 십진 코드를 반환합니다 (ASCII Table 참조).
예 :
import curses
screen = curses.initscr()
curses.cbreak()
screen.keypad(1)
key = ''
while key != ord('q'): # press <Q> to exit the program
key = screen.getch() # get the key
screen.addch(0, 0, key) # display it on the screen
screen.refresh()
# the same, but for <Up> and <Down> keys:
if key == curses.KEY_UP:
screen.addstr(0, 0, "Up")
elif key == curses.KEY_DOWN:
screen.addstr(0, 0, "Down")
curses.endwin()
([파이썬 사용자로부터 하나의 문자를 읽을]의
중복 가능성 http://stackoverflow.com/questions/510357/python-read-a-single-character-from -the-user) –
@AnttiHaapala 내가 찾던 것을 완전히 알지 못해서 찾지 못했습니다. – george
기본적으로 sys.stdin/터미널을 "원시 모드"에 넣고 그림과 같이 한 번에 한 문자 씩 읽을 수 있습니다 거기에 대한 몇 가지 대답. 여기에 응답 한 curses도 옵션이지만, 전체 터미널은 curses 모드로 설정됩니다. –