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根据给定文件返回文件名和扩展名的方法
Mar 27 Python
Python上传package到Pypi(代码简单)
Feb 06 Python
用十张图详解TensorFlow数据读取机制(附代码)
Feb 06 Python
Numpy数组转置的两种实现方法
Apr 17 Python
Python实现的删除重复文件或图片功能示例【去重】
Apr 23 Python
python pyinstaller 加载ui路径方法
Jun 10 Python
python3.6环境安装+pip环境配置教程图文详解
Jun 20 Python
Python+Pyqt实现简单GUI电子时钟
Feb 22 Python
使用pandas读取文件的实现
Jul 31 Python
浅谈Keras中shuffle和validation_split的顺序
Jun 19 Python
python为什么要安装到c盘
Jul 20 Python
基于Python模拟浏览器发送http请求
Nov 06 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
30 个很棒的PHP开源CMS内容管理系统小结
2011/10/14 PHP
用Php编写注册后Email激活验证的实例代码
2013/03/11 PHP
thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
2017/03/25 PHP
完美的php分页类
2017/10/24 PHP
laravel orm 关联条件查询代码
2019/10/21 PHP
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
utf8的编码算法 转载
2006/12/27 Javascript
js拦截alert对话框另类应用
2013/01/16 Javascript
jquery设置控件位置的方法
2013/08/21 Javascript
IE下双击checkbox反应延迟问题的解决方法
2014/03/27 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
2015/09/19 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
2016/09/01 Javascript
原生js实现键盘控制div移动且解决停顿问题
2016/12/05 Javascript
js仿微信抢红包功能
2020/09/25 Javascript
解决vue router组件状态刷新消失的问题
2018/08/01 Javascript
vue中改变滚动条样式的方法
2020/03/03 Javascript
win7安装python生成随机数代码分享
2013/12/27 Python
Python argv用法详解
2016/01/08 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
python指定写入文件时的编码格式方法
2018/06/07 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
Python re 模块findall() 函数返回值展现方式解析
2019/08/09 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
2021/01/08 Python
美国大码时尚女装购物网站:ELOQUII
2017/12/28 全球购物
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
俄罗斯厨房产品购物网站:COOK HOUSE
2021/03/15 全球购物
物流专业大学生的自我鉴定
2013/11/13 职场文书
2015年敬老月活动总结
2015/03/27 职场文书
Go语言中的UTF-8实现
2021/04/26 Golang
Python破解极验滑动验证码详细步骤
2021/05/21 Python
python tqdm用法及实例详解
2021/06/16 Python
SQLServer常见数学函数梳理总结
2022/08/05 MySQL
苹果macOS 13开发者预览版Beta 8发布 正式版10月发布
2022/09/23 数码科技