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服务器与android客户端socket通信实例
Nov 12 Python
在Python的Flask框架中使用日期和时间的教程
Apr 21 Python
简单介绍Python下自己编写web框架的一些要点
Apr 29 Python
Python实现约瑟夫环问题的方法
May 03 Python
python结合selenium获取XX省交通违章数据的实现思路及代码
Jun 26 Python
python+matplotlib绘制旋转椭圆实例代码
Jan 12 Python
详解如何利用Cython为Python代码加速
Jan 27 Python
Python网络爬虫神器PyQuery的基本使用教程
Feb 03 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
Feb 26 Python
python协程之动态添加任务的方法
Feb 19 Python
python实现在线翻译功能
Mar 03 Python
python RSA加密的示例
Dec 09 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
晋城吧对DiscuzX进行的前端优化要点
2010/09/05 PHP
PHP单例模式实例分析【防继承,防克隆操作】
2019/05/22 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
js判断undefined变量类型使用typeof
2013/06/03 Javascript
jquery弹出框的用法示例(2)
2013/08/26 Javascript
Checbox的操作含已选、未选及判断代码
2013/11/07 Javascript
jquery中load方法的用法及注意事项说明
2014/02/22 Javascript
jquery实现点击消失的代码
2014/03/03 Javascript
JavaScript函数的调用以及参数传递
2015/10/21 Javascript
jquery form表单获取内容以及绑定数据
2016/02/24 Javascript
Jquery实现$.fn.extend和$.extend函数
2016/04/14 Javascript
AngularJS基础 ng-cut 指令介绍及简单示例
2016/08/01 Javascript
jsonp跨域请求详解
2017/07/13 Javascript
清空元素html("") innerHTML="" 与 empty()的区别和应用(推荐)
2017/08/14 Javascript
vue实现文字横向无缝走马灯组件效果的实例代码
2019/04/09 Javascript
Vue 列表页带参数进详情页的操作(router-link)
2020/11/13 Javascript
[01:01:24]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[01:20]PWL S2开团时刻第三期——团战可以输 蝙蝠必须死
2020/11/26 DOTA
python实现划词翻译
2020/04/23 Python
复习Python中的字符串知识点
2015/04/14 Python
Python中的下划线详解
2015/06/24 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
Python中对数组集进行按行打乱shuffle的方法
2018/11/08 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
使用TensorFlow-Slim进行图像分类的实现
2019/12/31 Python
python 读txt文件,按‘,’分割每行数据操作
2020/07/05 Python
小组口号大全
2014/06/09 职场文书
向女朋友道歉的话
2015/01/20 职场文书
体育活动总结
2015/02/04 职场文书
2015年护士节活动总结
2015/02/10 职场文书
2015公司年度工作总结
2015/05/14 职场文书
2016年五一国际劳动节活动总结
2016/04/06 职场文书
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
2021/07/16 HTML / CSS