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对列表排序的方法实例分析
May 16 Python
python制作一个桌面便签软件
Aug 09 Python
Python的Flask开发框架简单上手笔记
Nov 16 Python
Python编程中对文件和存储器的读写示例
Jan 25 Python
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
May 03 Python
python中ASCII码和字符的转换方法
Jul 09 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
Oct 22 Python
Django后端接收嵌套Json数据及解析详解
Jul 17 Python
python列表插入append(), extend(), insert()用法详解
Sep 14 Python
在python中修改.properties文件的操作
Apr 08 Python
使用Keras实现Tensor的相乘和相加代码
Jun 18 Python
聊聊Python中关于a=[[]]*3的反思
Jun 02 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
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
2010/03/21 PHP
PHP中文件上传的一个问题
2010/09/04 PHP
php网上商城购物车设计代码分享
2012/02/15 PHP
php实现分页工具类分享
2014/01/09 PHP
php+javascript实现的动态显示服务器运行程序进度条功能示例
2017/08/07 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
自适应图片大小的弹出窗口
2006/07/27 Javascript
js静态作用域的功能。
2006/12/25 Javascript
用Javascript实现Windows任务管理器的代码
2012/03/27 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
2014/10/23 Javascript
JavaScript代码生成PDF文件的方法
2016/02/26 Javascript
JavaScript是如何实现继承的(六种方式)
2016/03/31 Javascript
[02:45]2016年中国刀塔全程回顾,完美“圣”典即将上演
2016/12/15 DOTA
跟老齐学Python之不要红头文件(1)
2014/09/28 Python
详解Python3中的Sequence type的使用
2015/08/01 Python
Python网络爬虫实例讲解
2016/04/28 Python
python对json的相关操作实例详解
2017/01/04 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
python正则表达式匹配不包含某几个字符的字符串方法
2019/07/23 Python
python3.x 生成3维随机数组实例
2019/11/28 Python
python3 logging日志封装实例
2020/04/08 Python
django使用JWT保存用户登录信息
2020/04/22 Python
windows支持哪个版本的python
2020/07/03 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
CSS3实现的文本3D效果附图
2014/09/03 HTML / CSS
国际奢侈品品牌童装购物网站:Designer Childrenswear
2019/05/08 全球购物
大学生实习期自我评价范文
2013/10/03 职场文书
应届毕业生求职信范文
2013/12/18 职场文书
家具公司总经理岗位职责
2014/07/08 职场文书
家庭贫困证明范本(经典版)
2014/09/22 职场文书
《角的度量》教学反思
2016/02/18 职场文书
终止合同协议书范本
2016/03/22 职场文书
研究生毕业登记表的自我鉴定范文
2019/07/15 职场文书
SpringBoot 整合mongoDB并自定义连接池的示例代码
2022/02/28 MongoDB