自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一日一技:如何實現(xiàn)帶Timeout的Input?

開發(fā) 前端
在Linux/macOS系統(tǒng)下面,我們可以使用selectors。這是Python自帶的模塊,不需要額外安裝。

我們知道,在Python里面,可以使用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

責任編輯:武曉燕 來源: 未聞Code
相關推薦

2024-11-11 00:38:13

Mypy靜態(tài)類型

2021-10-15 21:08:31

PandasExcel對象

2022-03-12 20:38:14

網(wǎng)頁Python測試

2021-03-12 21:19:15

Python鏈式調(diào)用

2021-09-13 20:38:47

Python鏈式調(diào)用

2021-07-27 21:32:57

Python 延遲調(diào)用

2021-04-27 22:15:02

Selenium瀏覽器爬蟲

2023-10-28 12:14:35

爬蟲JavaScriptObject

2024-07-30 08:11:16

2024-07-30 08:16:18

Python代碼工具

2021-05-08 19:33:51

移除字符零寬

2022-03-07 09:14:04

Selenium鼠標元素

2021-02-14 22:22:18

格式圖片 HTTP

2021-07-26 21:15:10

LRU緩存MongoDB

2024-10-16 21:47:15

2021-04-05 14:47:55

Python多線程事件監(jiān)控

2024-11-13 09:18:09

2021-04-12 21:19:01

PythonMakefile項目

2020-12-11 06:30:00

工具分組DataFrame

2023-10-29 09:16:49

代碼安全命令
點贊
收藏

51CTO技術棧公眾號