<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Python input 等待鍵盤輸入,超時選擇預設值,釋放input,之後重新進入等待鍵盤輸入狀態,直到使用者輸入可用資料。
pip install func_timeout
func_set_timeout 裝飾器設定超時時間,程式超時後會丟擲func_timeout.exceptions.FunctionTimedOut異常
import func_timeout @func_timeout.func_set_timeout(3) #超時時間為 3s def Input_task(): print('請輸入:') return input()
def task(): try: s = Input_task() print('成功輸入') except func_timeout.exceptions.FunctionTimedOut as e: s = '預設值!' print(s)
下面的程式碼中將 task() 函數放進 while 迴圈,出現超時異常後,手動輸入無效
import func_timeout from func_timeout import func_set_timeout timeout = 4 @func_set_timeout(timeout) def Input_task(): print('請輸入:') return input() def task(): try: s = Input_task() print('成功輸入') run_flag = False except func_timeout.exceptions.FunctionTimedOut as e: s = '預設值!' run_flag = True print(s) return run_flag #如果成功輸入將退出 while 迴圈 run_flag = True while run_flag: run_flag = task()
執行結果:
小結:該模組只能進行一次超時控制,當程式第一次丟擲超時異常後,即使使用者輸入資料也無濟於事
是Thead類的一個子類,可用於在指定時間間隔後啟動執行緒
# 匯入執行緒模組 import threading timer = threading.Timer(interval, function, args=None, kwargs=None)
引數介紹:
interval
— 定時器間隔,間隔多少秒之後啟動定時器任務(單位:秒);function
— 執行緒函數;args
— 執行緒引數,可以傳遞元組型別資料,預設為空(預設引數);kwargs
— 執行緒引數,可以傳遞字典型別資料,預設為空(預設引數)(1) PyUserInput模組安裝
pip install PyUserInput
python3.5的PyMouse和PyKeyboard模組都整合到了PyUserInput模組中
(2) 鍵盤範例化
from pykeyboard import PyKeyboard k = PyKeyboard()#鍵盤的範例 k
(3) 鍵盤操作說明
單個按鍵
k.type_string(‘Hello, World!') #模擬鍵盤輸入字串 k.press_key(‘H') #模擬鍵盤按H鍵 k.release_key(‘H') #模擬鍵盤松開H鍵 k.tap_key(「H」) #模擬點選H鍵 k.tap_key(‘H',n=2,interval=5) #模擬點選H鍵,2次,每次間隔5秒 k.tap_key(k.function_keys[5]) #點選功能鍵F5 k.tap_key(k.numpad_keys[5],3) #點選小鍵盤5,3次
組合鍵(例如同時按alt+tab鍵盤 )
k.press_key(k.alt_key) #按住alt鍵 k.tap_key(k.tab_key) #點選tab鍵 k.release_key(k.alt_key) #鬆開alt鍵
from pykeyboard import PyKeyboard import threading def Input_simulate(timeout): if not Input_event.is_set(): key = PyKeyboard()#鍵盤的範例 key key.type_string('no input') #模擬鍵盤輸入字串 key.press_key(key.enter_key) #模擬按下 ENTER 鍵 key.release_key(key.enter_key) #模擬釋放 ENTER 鍵 global timer #將定時器的控制程式碼定義成一個全域性變數,這樣做的好處是,建立的定時器程序和範例不會堆積,而是覆蓋,避免不必要的記憶體佔用。 Input_event.clear() timer = threading.Timer(timeout, Input_simulate, args=(timeout,)) timer.start() msg = input('請輸入你的資訊:') if msg == 'no input': pass else: print(msg) #列印輸入資訊 timer.cancel() #取消定時器的排程,當用戶輸入資料時將停止計時,程式退出執行 if __name__ == '__main__': Input_event = threading.Event() Input_event.set() Input_simulate(5)
執行結果:
小結:該程式碼等待鍵盤輸入,超時選擇預設值,釋放input,之後重新進入等待鍵盤輸入狀態,直到使用者輸入可用資料。
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45