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中取整的几种方法小结
Jan 06 Python
python opencv实现切变换 不裁减图片
Jul 26 Python
Python反射和内置方法重写操作详解
Aug 27 Python
Python之inspect模块实现获取加载模块路径的方法
Oct 16 Python
Python 读取有公式cell的结果内容实例方法
Feb 17 Python
python 一维二维插值实例
Apr 22 Python
python中的错误如何查看
Jul 08 Python
python开发一款翻译工具
Oct 10 Python
Django web自定义通用权限控制实现方法
Nov 24 Python
Python 微信公众号文章爬取的示例代码
Nov 30 Python
python实现Thrift服务端的方法
Apr 20 Python
Python OpenCV实现图像模板匹配详解
Apr 07 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
一个基于PDO的数据库操作类(新) 一个PDO事务实例
2011/07/03 PHP
js和php邮箱地址验证的实现方法
2014/01/09 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
php封装json通信接口详解及实例
2017/03/07 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
PHP实现分布式memcache设置web集群session同步的方法
2018/04/10 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
Jquery 点击按钮显示和隐藏层的代码
2011/07/25 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
2013/09/26 Javascript
jquery实现非叠加式的搜索框提示效果
2014/01/07 Javascript
js中将String转换为number以便比较
2014/07/08 Javascript
Egret引擎开发指南之创建项目
2014/09/03 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
2018/05/29 Javascript
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
pytorch构建网络模型的4种方法
2018/04/13 Python
Python QQBot库的QQ聊天机器人
2019/06/19 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
2019/09/03 Python
Python如何实现大型数组运算(使用NumPy)
2020/07/24 Python
CSS3实现同时执行倾斜和旋转的动画效果
2016/10/27 HTML / CSS
HTML5之SVG 2D入门8—文档结构及相关元素总结
2013/01/30 HTML / CSS
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
国际书籍零售商:Wordery
2017/11/01 全球购物
副护士长竞聘演讲稿
2014/04/30 职场文书
弘扬雷锋精神演讲稿
2014/05/10 职场文书
2014年安全生产大检查方案
2014/05/13 职场文书
传播学专业毕业生自荐书
2014/07/01 职场文书
庆祝国庆节演讲稿2014
2014/09/19 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
九九重阳节致辞
2015/07/31 职场文书
辞职报告(范文三篇)
2019/08/27 职场文书
Pytorch 如何实现常用正则化
2021/05/27 Python
sql中mod()函数取余数的用法
2021/05/29 SQL Server
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python