forked from protonphoton/LJ
78 lines
1.5 KiB
Python
78 lines
1.5 KiB
Python
|
# code exemple find at : https://stackoverflow.com/questions/2408560/python-nonblocking-console-input
|
||
|
|
||
|
import sys
|
||
|
import select
|
||
|
import tty
|
||
|
import termios
|
||
|
|
||
|
def isData():
|
||
|
return select.select([sys.stdin], [], [], 0) == ([sys.stdin], [], [])
|
||
|
|
||
|
old_settings = termios.tcgetattr(sys.stdin)
|
||
|
|
||
|
try:
|
||
|
tty.setcbreak(sys.stdin.fileno())
|
||
|
|
||
|
i = 0
|
||
|
while 1:
|
||
|
#if i % 100000 == 0:
|
||
|
# print("i", i)
|
||
|
#i += 1
|
||
|
if isData():
|
||
|
c = sys.stdin.read(1)
|
||
|
print(c)
|
||
|
if c == '\x1b': # x1b is ESC
|
||
|
break
|
||
|
|
||
|
finally:
|
||
|
termios.tcsetattr(sys.stdin, termios.TCSADRAIN, old_settings)
|
||
|
|
||
|
|
||
|
|
||
|
### for windows
|
||
|
#import msvcrt
|
||
|
#
|
||
|
#num = 0
|
||
|
#done = False
|
||
|
#while not done:
|
||
|
# print(num)
|
||
|
# num += 1
|
||
|
#
|
||
|
# if msvcrt.kbhit():
|
||
|
# print "you pressed",msvcrt.getch(),"so now i will quit"
|
||
|
# done = True
|
||
|
#
|
||
|
|
||
|
## cross platforme (but may be a bit huge to import pygame...)
|
||
|
#import pygame
|
||
|
#from pygame.locals import *
|
||
|
#
|
||
|
#def display(str):
|
||
|
# text = font.render(str, True, (255, 255, 255), (159, 182, 205))
|
||
|
# textRect = text.get_rect()
|
||
|
# textRect.centerx = screen.get_rect().centerx
|
||
|
# textRect.centery = screen.get_rect().centery
|
||
|
#
|
||
|
# screen.blit(text, textRect)
|
||
|
# pygame.display.update()
|
||
|
#
|
||
|
#pygame.init()
|
||
|
#screen = pygame.display.set_mode( (640,480) )
|
||
|
#pygame.display.set_caption('Python numbers')
|
||
|
#screen.fill((159, 182, 205))
|
||
|
#
|
||
|
#font = pygame.font.Font(None, 17)
|
||
|
#
|
||
|
#num = 0
|
||
|
#done = False
|
||
|
#while not done:
|
||
|
# display( str(num) )
|
||
|
# num += 1
|
||
|
#
|
||
|
# pygame.event.pump()
|
||
|
# keys = pygame.key.get_pressed()
|
||
|
# if keys[K_ESCAPE]:
|
||
|
# done = True
|
||
|
#
|
||
|
|