国产探花免费观看_亚洲丰满少妇自慰呻吟_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.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临安市| 东方市| 介休市| 文山县| 托克托县| 石泉县| 锦州市| 罗平县| 富裕县| 都匀市| 海兴县| 怀化市| 满洲里市| 垫江县| 安陆市| 遂川县| 中阳县| 进贤县| 富民县| 巴里| 南城县| 寿宁县| 康乐县| 中江县| 天台县| 家居| 潢川县| 南木林县| 柏乡县| 芒康县| 阿鲁科尔沁旗| 永顺县| 西峡县| 阿克苏市| 哈尔滨市| 馆陶县| 五常市| 桂林市| 宁蒗| 承德市| 高阳县|