在python中使用getch在while(1)

2024-04-24 11:24:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在循环(while(1))中使用char=getch.getch()。 当我这样使用时,问题是它阻塞了我的循环:

import getch

while(1):
         char=getch.getch()
         a=read_data()
         if (char=='a'): c=....
         if (char=='b'): c=.... 

如果我什么都不放,我的循环就被阻塞了。。。如何解决从键盘获取事件的问题?在

编辑:顶部是我想做什么的一个例子,但是如果您感兴趣,这里是我真正的脚本。我实际上正在研究分析仪光谱,我想通过按一些键进行扫描:

^{pr2}$

Tags: import脚本编辑readdataif事件光谱
1条回答
网友
1楼 · 发布于 2024-04-24 11:24:03

如果您在Windows上,可以使用^{}查看是否有按键等待而不阻塞:

import msvcrt
import time

while True:
    time.sleep(1)
    if msvcrt.kbhit():
        # Only if there's a keypress waiting do we get it with getch()
        print "Key hit! ({})".format(msvcrt.getch())
    else:
        # Do something else here
        print "Nothing..."

在Linux上,它更复杂,因为没有kbhit()等价物。在

相关问题 更多 >