Pythoninput实现等待键盘输入,超时返回缺省值,并且释放input

2019-03-10 17:45阅读:

HenryYinHao

无可奉告

关注

网上找了很久,没有看到完全符合标题目标的代码。所以自己总结了一下各种方法,合并成一个函数。

基本思路:

1. 首先用线程来运行input()命令

2.

用join(timeout=??)来控制这个线程的等待时间。这是个人觉得最方便的方法,其他的方法都是要创建另外一个线程来控制时间,实现超时控制。而join()的方法只需一个线程就可以了,明确方便。

3.

join()后,用is_alive()来判断线程是否还在,如果在,就说明没有输入,超时了,返回缺省值。如果is_alive()判断没有线程了,说明已经有输入了,则返回输入的值。

4.

这个时候,虽然可以有了正确的返回值。但是如果是超时的话,虽然可以往后面运行了,但是线程本身还在运行,也就是input()还是占用着界面等待输入。后面的程序就无法再次用input()来获取输入了。因此必须要终止目前这个input()。

尝试过daemon=true,但这个方法是程序运行完后,才会结束这个线程。也就是程序结束后,后继的程序才能用input(),但当前这个程序里面,还是没有办法用input()。

查看了不少方法,感觉最简单的就是模拟键盘输入,给一个回车键,这样input()就结束了,线程就结束了。可以放心开始后面的input()了。模拟键盘有好几个方法,都可以的。我这里用了PyKeyboard()。

具体代码如下:

def getInputFromStdin(sInformation, sDefaultValue=None,

iDelayTime=0):

def get_input(sInformation, dictData):

# 线程,获得键盘输入,存储到dictData

dictData['input']=input(sInformation)

dictData={}

dictData['input']=sDefaultValue # 缺省返回值

sReturn=sDefaultValue # 缺省返回值

input_thread = threading.Thread(target=get_input,

args=(sInformation, dictData)) # 创建线程

input_

python等待键盘输入_Pythoninput实现等待键盘输入,超时返回缺省值,并且释放input...相关推荐

  1. python键盘输入转换为列表_Python键盘输入转换为列表的实例

    Python输入字符串转列表是为了方便后续处理,这种操作在考试的时候比较多见. 1.在Python3.0以后,键盘输入使用input函数 eg1. >>> x=input >& ...

  2. python键盘监听及模拟键盘输入

    import sys,os from pynput.keyboard import Controller,Key,Listener import datetimedef on_press(key):t ...

  3. python键盘监听及模拟键盘输入keyboard

    # -*- coding: utf-8 -*- """ Created on Sat Jan 12 14:19:56 2019 QQ群:476842922(欢迎加群讨论学 ...

  4. linux的shell键盘输入,linux shell获取键盘输入

    linux shell从键盘获取输入 代码1: #!/bin/bash #提示"Input your choice:",把用户的输入保存入变量choice_user中 read - ...

  5. delphi XE模拟Android手机PDA设备的虚拟键盘按键及扫码过程输入焦点及信号接收

    delphi XE模拟Android手机PDA设备的虚拟键盘按键及扫码过程输入焦点及信号接收 今天,群里有几位同学讨论这个问题,汇总了一下,分享出来,供同学们学习研究. 一.直接上代码示例 1.屏蔽应 ...

  6. python waitkey(0)_opencv学习之等待按键事件-waitKey函数

    文章来源: 序 waitKey函数属于opencv函数里既常用又非常基础的函数,无论是刚开始学习opencv,还是使用opencv进行开发调试,都可以看到waitKey函数的身影.然而最基础的东西可能 ...

  7. c语言键盘输入坐标,c语言键盘操作.docx

    第一章??? 编程技术实现 ??? 本章内容简介:本章主要介绍如何实现键盘和鼠标的输入,图形图像技术,动画技术,发声技术,汉字显示技术,精确的时间控制技术.是编写大型程序的基本功.虽然每个技术所涉及的 ...

  8. python如何从键盘输入数据_python如何从键盘输入数据?

    python从键盘输入数据的方法: 在python中使用raw_input().input().sys.stdin等方法获取从键盘输入的数据. 1.使用raw_input()函数获取从键盘输入的数据 ...

  9. python使用keyboard库写的GUI键盘宏

    前言:之前和朋友玩游戏,需要一直按住两个按键,很麻烦.就像用python写个小脚本来方便自己,说干就干.(用于学习) 正文: 用到的库: keyborad threading tkinter time ...

  10. python调用键盘_Python直接控制鼠标键盘

    Python直接控制鼠标键盘 之前因为期末的原因已经很久没写博客了,今天博主发现一个好玩的模块PyAutoGUI,借助它可以使用Python脚本直接控制键盘鼠标,感觉可以解决很多无聊的机械运动.这里记 ...

最新文章

  1. 日订单50万级分布式事务
  2. 满屏的if-else,看我怎么消灭你!
  3. 0116互联网新闻 | “DaDa英语”近日完成2.55亿美元D轮融资;腾讯推今年首个手游“闹闹天宫”...
  4. 3 年前端面经和他在创业公司的成长历程
  5. 休眠事实:有利于双向集vs列表
  6. IIS之错误解决之道
  7. size()和 strlen区别
  8. Java-Lambda表达式第一篇认识Lambda表达式
  9. 新浪微博说说html,说说新浪微博
  10. 《禅者的初心》读书笔记(3)
  11. jadx工具windows下载
  12. 浅谈对Vue框架中MVVM的认识
  13. S7-1200 PLC 激活系统时钟存储位后,相应的位没有工作?
  14. Rails博客软件 Enki
  15. renren-generator:运行报错java: 找不到符号 符号: 类 Longblob
  16. 关于onload事件
  17. 如何去掉IFrame里面页面周围的空白
  18. java double 后缀_Java double数据类型
  19. 人工智能翻译能否取代人工翻译
  20. 普通人快速上手编程的三个方法

热门文章

  1. 139邮箱服务器的ip,[原创]中国移动139邮箱和说客
  2. Java基础篇--异常机制
  3. [ArcGIS] Python计算Geometrical interval自然间断点 | jenkspy库
  4. 台式电脑经常碰到的一些问题
  5. 云栖社区新版首页上线_开启找bug模式
  6. 修复0xc0000034的经历
  7. 多文件自平衡云传输 (五)资源管理中心篇 —————— 开开开山怪
  8. docker minio部署作为shareX截图软件的图床
  9. jackson解析泛型的正确写法,解决 in unnamed module of loader ‘app‘
  10. VM+Lamp环境搭建