python 获取键盘输入,同时有超时的功能示例

yipeiwu_com5年前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

以上这篇python 获取键盘输入,同时有超时的功能示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

查看django执行的sql语句及消耗时间的两种方法

下面介绍两种查看django 执行的sql语句的方法。 方法一: queryset = Apple.objects.all() print queryset.query SELEC...

关于python多重赋值的小问题

前言 今天无意中发现在python中的一个多重赋值的小问题,自己一开始是比较简单化的理解了这个多重赋值操作的概念,所以导致在一道实现斐波那契数列的代码中,发现了自己的问题,顺便记录下吧,...

python3中替换python2中cmp函数的实现

python3中替换python2中cmp函数的实现

python 3.4.3 的版本中已经没有cmp函数,被operator模块代替,在交互模式下使用时,需要导入模块。 在没有导入模块情况下,会出现 提示找不到cmp函数了,那么在p...

Python操作redis和mongoDB的方法

一、操作redis redis是一个key-value存储系统,value的类型包括string(字符串),list(链表),set(集合),zset(有序集合),hash(哈希类型)。...

django框架使用orm实现批量更新数据的方法

本文实例讲述了django框架使用orm实现批量更新数据的方法。分享给大家供大家参考,具体如下: 好久没有用django来改版博客了,突然感觉到生疏了。没办法,业余玩python,dja...