我有一个相对简单的脚本和一个可能简单的问题。
在互联网上,我收集了一些关于如何使用直接按键作为 python 代码中的输入的解决方案。我更喜欢这些而不是 raw_input,因为它感觉更快。就像如果我有一个包含 3 个选项的菜单,并且每个选项都有 3 个选项,我可以轻松地按键盘上的 3 然后 2 来到达我需要去的地方。
代码是:
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()
因为某些原因。它也不喜欢在其之前或之后的瞬间进行输入。
如果我能得到一个函数来做这件事,这样我就可以在其他地方输入它,那就太棒了。
如果最后没有 else 语句,那么 while 循环就会继续进行。
如果我在 while 循环中没有它,脚本会在 1 秒内打印选项,然后默认为 else,因为我在 1 秒内没有按下任何键。
我知道它有效,因为如果我取出 else 语句,当它一遍又一遍地发送选项时,我按 3,IDLE 会询问我是否要在脚本运行时终止它。
Use 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()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)