日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
一日一技:如何實現(xiàn)帶Timeout的Input?

但有一個問題,如果你什么都不輸入,程序會永遠卡在這里。有沒有什么辦法,可以給input設置超時時間呢?如果用戶在一定時間內(nèi)不輸入,就自動使用默認值。

要實現(xiàn)這個需求,在Linux/macOS系統(tǒng)下面,我們可以使用selectors。這是Python自帶的模塊,不需要額外安裝。對應的代碼如下:

import sys
import selectors

def timeout_input(msg, default='', timeout=5):
sys.stdout.write(msg)
sys.stdout.flush()
sel = selectors.DefaultSelector()
sel.register(sys.stdin, selectors.EVENT_READ)
events = sel.select(timeout)
if events:
key, _ = events[0]
return key.fileobj.readline().rstrip()
else:
sys.stdout.write('\n')
return default

運行效果如下圖所示:

selectors[1]這個模塊,可以使用系統(tǒng)層級的select,實現(xiàn)IO多路復用。

這段代碼來自inputimeout[2]。上面除了Linux/macOS版本外,還有Windows版本。大家有興趣可以看一下。

參考資料

[1] selectors: https://docs.python.org/3.8/library/selectors.html

[2] inputimeout: https://github.com/johejo/inputimeout/blob/master/inputimeout/inputimeout.py


網(wǎng)頁題目:一日一技:如何實現(xiàn)帶Timeout的Input?
當前路徑:http://www.dlmjj.cn/article/dhiehoh.html