1 | ||
Editor: mol
Time: 2010/01/09 20:12:24 GMT+1 |
||
Note: |
changed: - <p>Jak zařídit, aby se přečetl znak bez čekání na Enter?</p> <h2>Windows</h2> <p>Viz funkce <tt>msvcrt.getch()</tt> a následující.</p> <h2>Unix</h2> <h3>Přímo</h3> <pre>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)</pre> <h3>!NCurses</h3> <pre>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()</pre>
Jak zařídit, aby se přečetl znak bez čekání na Enter?
Viz funkce msvcrt.getch() a následující.
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)
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()