1. 程式人生 > >python 獲取鍵盤輸入,同時有超時的功能

python 獲取鍵盤輸入,同時有超時的功能

'''
###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