python 獲取鍵盤輸入,同時有超時的功能
阿新 • • 發佈:2019-02-08
'''
###get keyboard input and timeout =5
import sys, time, msvcrt
def readInput( caption, default, timeout = 5):
start_time = time.time()
sys.stdout.write('%s(%s):'%(caption, default));
input = ''
while True:
if msvcrt.kbhit():
chr = msvcrt.getche()
if ord(chr) == 13: # enter_key
break
elif ord(chr) >= 32: #space_char
input += chr
if len(input) == 0 and (time.time() - start_time) > timeout:
break
print '' # needed to move to next line
if len(input) > 0:
return input
else:
return default
readInput("TEst1",10)
'''
###catch keyboard input, if key == ESC, stop
import sys, time, msvcrt
def readKeyBoardInput(timeout = 5):
start_time = time.time()
sys.stdout.write("If you want to stop test process,please click ESC button");
input = ''
while True:
if msvcrt.kbhit():
chr = msvcrt.getche()
if ord(chr) == 27: # ESC
return True
if len(input) == 0 and (time.time() - start_time) > timeout:
return False
###get keyboard input and timeout =5
import sys, time, msvcrt
def readInput( caption, default, timeout = 5):
start_time = time.time()
sys.stdout.write('%s(%s):'%(caption, default));
input = ''
while True:
if msvcrt.kbhit():
chr = msvcrt.getche()
if ord(chr) == 13: # enter_key
break
elif ord(chr) >= 32: #space_char
input += chr
if len(input) == 0 and (time.time() - start_time) > timeout:
break
print '' # needed to move to next line
if len(input) > 0:
return input
else:
return default
readInput("TEst1",10)
'''
###catch keyboard input, if key == ESC, stop
import sys, time, msvcrt
def readKeyBoardInput(timeout = 5):
start_time = time.time()
sys.stdout.write("If you want to stop test process,please click ESC button");
input = ''
while True:
if msvcrt.kbhit():
chr = msvcrt.getche()
if ord(chr) == 27: # ESC
return True
if len(input) == 0 and (time.time() - start_time) > timeout:
return False