Python 命令行非阻塞输入的小例子


Posted in Python onSeptember 27, 2013

 随手google??幌拢??旧隙加?elect实现非阻塞监听,但问题是,监听的是用select之后是不能像getchar()那样,即时收到单个字符的输入,必须要等待回车。

    经过努力不怠??oogle... [好吧,还是google。没有google什么也做不了。]

    最后系一大堆英文资料入面,拼凑出如下可用的代码,实现了单个字符非阻塞输入。

    show code below.

#!/usr/bin/python
# -*- coding: utf-8 -*-
""" python non blocking input
"""
__author__ = 'Zagfai'
__version__=  '2013-09-13'
import sys
import select
from time import sleep
import termios
import tty
old_settings = termios.tcgetattr(sys.stdin)
tty.setcbreak(sys.stdin.fileno())
while True:
    sleep(.001)
    if select.select([sys.stdin], [], [], 0) == ([sys.stdin], [], []):
        c = sys.stdin.read(1)
        if c == '\x1b': break
        sys.stdout.write(c)
        sys.stdout.flush()
termios.tcsetattr(sys.stdin, termios.TCSADRAIN, old_settings)
print raw_input('123:')

其中用到两个模块,分别系termios、tty,用来控制tty的输入模式,由行输入变为单字符。

    END.

Python 相关文章推荐
Python中的__SLOTS__属性使用示例
Feb 18 Python
python实现上传下载文件功能
Nov 19 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
Aug 08 Python
python爬虫headers设置后无效的解决方法
Oct 21 Python
Python scikit-learn 做线性回归的示例代码
Nov 01 Python
在python plt图表中文字大小调节的方法
Jul 08 Python
python super的使用方法及实例详解
Sep 25 Python
详解python路径拼接os.path.join()函数的用法
Oct 09 Python
python程序文件扩展名知识点详解
Feb 27 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
Jun 06 Python
详解vscode实现远程linux服务器上Python开发
Nov 10 Python
Python一行代码实现自动发邮件功能
May 30 Python
用Python脚本生成Android SALT扰码的方法
Sep 18 #Python
python pickle 和 shelve模块的用法
Sep 16 #Python
Python版的文曲星猜数字游戏代码
Sep 02 #Python
pytyon 带有重复的全排列
Aug 13 #Python
python不带重复的全排列代码
Aug 13 #Python
python在多玩图片上下载妹子图的实现代码
Aug 13 #Python
python实现的一只从百度开始不断搜索的小爬虫
Aug 13 #Python
You might like
十天学会php之第八天
2006/10/09 PHP
PHP错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
ThinkPHP发送邮件示例代码
2016/10/08 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
php和asp语法上的区别总结
2019/05/12 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
2019/07/24 PHP
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
window.open 以post方式传递参数示例代码
2014/02/27 Javascript
jQuery实现DIV层淡入淡出拖动特效的方法
2015/02/13 Javascript
AngularJS入门教程之AngularJS指令
2016/04/18 Javascript
javascript基础知识
2016/06/07 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
2016/09/06 Javascript
jQuery实现的导航条点击后高亮显示功能示例
2019/03/04 jQuery
Webpack 4如何动态切割JS注入文件名详解
2019/07/09 Javascript
vue配置nprogress实现页面顶部进度条
2019/09/21 Javascript
vue.js实现二级菜单效果
2019/10/19 Javascript
[01:09:24]Ti4开幕式
2014/07/19 DOTA
Python获取系统默认字符编码的方法
2015/06/04 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
2017/12/21 Python
windows下安装Python的XlsxWriter模块方法
2018/05/03 Python
一行Python代码制作动态二维码的实现
2019/09/09 Python
python隐藏类中属性的3种实现方法
2019/12/19 Python
python使用SQLAlchemy操作MySQL
2020/01/02 Python
python代码xml转txt实例
2020/03/10 Python
python re.match()用法相关示例
2021/01/27 Python
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
关键字final的用法
2013/10/02 面试题
采购人员的个人自我评价
2014/01/16 职场文书
英语商务邀请函范文
2014/01/16 职场文书
静心口服夜广告词
2014/03/20 职场文书
委托公证书
2014/04/08 职场文书
《二泉映月》教学反思
2014/04/15 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
医务人员医德考评自我评价
2015/03/03 职场文书
仓库统计员岗位职责
2015/04/14 职场文书
vue.js 使用原生js实现轮播图
2022/04/26 Vue.js