国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python 命令行非阻塞輸入的小例子

2020-02-23 04:53:55
字體:
來源:轉載
供稿:網友

 隨手google咗一下,基本上都用select實現非阻塞監聽,但問題是,監聽的是用select之后是不能像getchar()那樣,即時收到單個字符的輸入,必須要等待回車。

    經過努力不怠咁google... [好吧,還是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.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高要市| 迭部县| 同仁县| 九江县| 龙南县| 天长市| 疏附县| 松桃| 卢氏县| 儋州市| 宁陕县| 临桂县| 沁源县| 宽甸| 四子王旗| 旌德县| 舒兰市| 徐水县| 定远县| 沾化县| 荔波县| 长白| 呼伦贝尔市| 临清市| 双城市| 前郭尔| 宁陵县| 循化| 拜城县| 呼图壁县| 平度市| 盐边县| 自治县| 巴林右旗| 应用必备| 托克托县| 罗田县| 东至县| 出国| 韶山市| 黎平县|