[英]Pause python script wait for key press
我有一個相對簡單的腳本和一個可能很簡單的問題。 在 inte.net 周圍,我收集了一些關於如何在我的 python 代碼中使用直接按鍵作為輸入的解決方案。 我更喜歡這些而不是 raw_input,因為它感覺更快。 就像我有一個包含 3 個選項的菜單,每個菜單中有 3 個選項,我可以輕松地按鍵盤上的 3 然后按 2 以到達我需要的位置 go。
代碼是:
import keyboard
import time
def mainmenu():
while(True):
print ('1. Scan')
print ('2. Ping')
print ('3. Exit')
if keyboard.is_pressed('1'):
print ('Option 1\n')
elif keyboard.is_pressed('2'):
print ('Option 2\n')
elif keyboard.is_pressed('3'):
print ('Exiting\n')
exit(0)
else:
print ('none of the specified options were chosen')
time.sleep(0.3)
exit(0)
mainmenu()
我只想要一些可以暫停代碼的東西,我可以按下一個鍵。
由於某種原因,我不能使用time.sleep()
。 它也不喜歡在它之前或之后的瞬間輸入。
如果我能得到一個 function 就太棒了,這樣我就可以在其他地方輸入它了。
如果最后沒有我的 else 語句,while 循環就會繼續運行。
如果我在 while 循環中沒有它,腳本會在 1 秒內打印選項,然后默認為 else,因為我在 1 秒內沒有按下任何鍵。
我知道它有效,因為如果我取出 else 語句,當它一遍又一遍地向選項發送垃圾郵件時,我按 3,IDLE 會詢問我是否要在腳本運行時終止它。
您可以使用input()獲得相同的效果。
import time
def mainmenu():
while(True):
print ('1. Scan')
print ('2. Ping')
print ('3. Exit')
x= input()
if x==1:
print ('Option 1\n')
elif x==2:
print ('Option 2\n')
elif x==3:
print ('Exiting\n')
exit(0)
else:
print ('none of the specified options were chosen')
time.sleep(0.3)
exit(0)
mainmenu()
使用keyboard.read_key()
,因為它將阻止其余代碼的執行,直到發生鍵盤事件為止,然后返回該事件的名稱或(如果缺少)其掃描代碼。
import keyboard
import time
def mainmenu():
print ('1. Scan')
print ('2. Ping')
print ('3. Exit')
while(True):
a = keyboard.read_key()
if a == '1' or a == '2':
print("Option {} was pressed\n".format(a))
elif a == '3':
print("Exiting\n")
exit(0)
else:
print("None\n")
exit(0)
time.sleep(0.3)
mainmenu()
導入時間
def mainmenu(): while(True): print ('1. Scan') print ('2. Ping') print ('3. Exit')
x=input()
if x=='1':
print ('Option 1\n')
elif x=='2':
print ('Option 2\n')
elif x=='3':
print ('Exiting\n')
exit(0)
else:
print ('none of the specified options were chosen')
time.sleep(1)
主菜單()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.