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素数检测实例分析
Jun 15 Python
Python中Collections模块的Counter容器类使用教程
May 31 Python
Python模块结构与布局操作方法实例分析
Jul 24 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
Oct 21 Python
Django框架 信号调度原理解析
Sep 04 Python
解析python实现Lasso回归
Sep 11 Python
基于python实现对文件进行切分行
Apr 26 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
May 25 Python
Pycharm添加虚拟解释器报错问题解决方案
Oct 13 Python
python 实时调取摄像头的示例代码
Nov 25 Python
Python time库的时间时钟处理
May 02 Python
python基础之类属性和实例属性
Oct 24 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
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
2011/08/08 PHP
PHP的简单跳转提示的实现详解
2019/03/14 PHP
javascript与CSS复习(二)
2010/06/29 Javascript
JavaScript返回当前会话cookie全部键值对照的方法
2015/04/03 Javascript
AngularJS基础学习笔记之控制器
2015/05/10 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
2016/06/23 Javascript
微信小程序使用request网络请求操作实例
2017/12/15 Javascript
vue项目首屏打开速度慢的解决方法
2019/03/31 Javascript
Vue动态生成表格的行和列
2019/07/18 Javascript
javascript随机变色实例代码
2019/10/15 Javascript
实例分析javascript中的异步
2020/06/02 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
python实现的解析crontab配置文件代码
2014/06/30 Python
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
Python正规则表达式学习指南
2016/08/02 Python
python实现内存监控系统
2021/03/07 Python
python pands实现execl转csv 并修改csv指定列的方法
2018/12/12 Python
在自动化中用python实现键盘操作的方法详解
2019/07/19 Python
Python读写文件模式和文件对象方法实例详解
2019/09/17 Python
简单了解python字符串前面加r,u的含义
2019/12/26 Python
利用Python代码实现一键抠背景功能
2019/12/29 Python
Python文件名匹配与文件复制的实现
2020/12/11 Python
纯css3实现鼠标经过图片显示描述的动画效果
2014/09/01 HTML / CSS
HTML5 LocalStorage 本地存储刷新值还在
2017/03/10 HTML / CSS
Cult Gaia官网:美国生活方式品牌
2019/08/16 全球购物
介绍一下JMS编程步骤
2015/09/22 面试题
2014年计算机专业个人自我评价
2014/01/19 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
骨干教师事迹材料
2014/12/17 职场文书
西柏坡导游词
2015/02/05 职场文书
借钱欠条怎么写
2015/07/03 职场文书
老舍《猫》教学反思
2016/02/17 职场文书
迎客户欢迎词三篇
2019/09/27 职场文书
Pytorch 中net.train 和 net.eval的使用说明
2021/05/22 Python
python用海龟绘图写贪吃蛇游戏
2021/06/18 Python