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使用socket进行简单网络连接的方法
Apr 29 Python
在Python程序员面试中被问的最多的10道题
Dec 05 Python
python批量实现Word文件转换为PDF文件
Mar 15 Python
python爬虫之验证码篇3-滑动验证码识别技术
Apr 11 Python
Python Pandas中根据列的值选取多行数据
Jul 08 Python
Python Opencv任意形状目标检测并绘制框图
Jul 23 Python
使用python绘制温度变化雷达图
Oct 18 Python
TFRecord文件查看包含的所有Features代码
Feb 17 Python
详解python tkinter 图片插入问题
Sep 03 Python
用python实现一个简单的验证码
Dec 09 Python
python数据抓取3种方法总结
Feb 07 Python
python基础之//、/与%的区别详解
Jun 10 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中通过smtp发邮件的类,测试通过
2007/01/22 PHP
一步一步学习PHP(3) php 函数
2010/02/15 PHP
实用PHP会员权限控制实现原理分析
2011/05/29 PHP
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
PHP查看SSL证书信息的方法
2016/09/22 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
QQ登录简单实现代码
2021/03/09 Javascript
Javascript 模式实例 观察者模式
2009/10/24 Javascript
js监听表单value的修改同步问题,跨浏览器支持
2009/12/31 Javascript
JS实现div居中示例
2014/04/17 Javascript
JavaScript拆分字符串时产生空字符的解决方案
2014/09/26 Javascript
JavaScript中的异常捕捉介绍
2014/12/31 Javascript
Javascript中typeof 用法小结
2015/05/12 Javascript
jquery实现简单手风琴菜单效果实例
2015/06/13 Javascript
SublimeText自带格式化代码功能之reindent
2015/12/27 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
2016/05/30 Javascript
微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解
2016/12/08 Javascript
原生JS中slice()方法和splice()区别
2017/03/06 Javascript
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
微信小程序使用websocket通讯的demo,含前后端代码,亲测可用
2019/05/22 Javascript
jQuery实现朋友圈查看图片
2020/09/11 jQuery
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
python操作ssh实现服务器日志下载的方法
2015/06/03 Python
Python根据区号生成手机号码的方法
2015/07/08 Python
Python中的getopt函数使用详解
2015/07/28 Python
Python简单实现enum功能的方法
2016/04/25 Python
详解python运行三种方式
2019/05/13 Python
pytorch实现mnist分类的示例讲解
2020/01/10 Python
深入了解Python 变量作用域
2020/07/24 Python
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
实体的生命周期
2013/08/31 面试题
大三预备党员入党思想汇报
2014/01/08 职场文书
中学校庆方案
2014/03/17 职场文书
2014年最新离婚协议书范本
2014/10/11 职场文书
2016年教师寒假学习心得体会
2015/10/09 职场文书
Python学习之时间包使用教程详解
2022/03/21 Python