Jak zařídit, aby se přečetl znak bez čekání na Enter?

Windows

Viz funkce msvcrt.getch() a následující.

Unix

Přímo

import sys
import termios
import tty
fd = sys.stdin.fileno()
old = termios.tcgetattr(fd)
tty.setcbreak(fd)
try:
	print 'Stiskni q pro konec'
	ch = sys.stdin.read(1)
	while ch <> 'q':
		print 'To nebylo ono'
		ch = sys.stdin.read(1)
finally:
	termios.tcsetattr(fd, termios.TCSAFLUSH, old)

NCurses

import curses
stdscr = curses.initscr()
try:
	stdscr.scrollok(True)
	curses.noecho()
	curses.cbreak()

	stdscr.addstr('Stiskni q pro konec\n')
	ch = stdscr.getch()
	while ch <> ord('q'):
		stdscr.addstr('To nebylo ono\n')
		ch = stdscr.getch()
	
finally:
	curses.nocbreak()
	curses.echo()
	curses.endwin()



subject:
  ( 112 subscribers )