如何在不使用getch()的情况下检查用户是否在Python中按下了某个键?

时间:2015-09-16 03:50:44

标签: python debugging pyscripter

如果用户按下特定键并在循环后继续执行,我想中断循环。当stdin可用时,以下代码应该有效。

While True:
    # Do stuff here.
    if msvcrt.kbhit():
        key = msvcrt.getch()
        if key == somekey:
            break

我的问题是我在用于开发的PyScripter IDE调试器中没有stdin。还有另一种方法可以绕过stdin吗?如有必要,该解决方案可以是Windows特定的。

P.S。我在Windows 7上使用Python 2.7和PyScripter一起使用' Remote' Python Engine(无论这意味着什么)。

P.P.S。我根据以下dbliss的反馈重写了这个问题。

1 个答案:

答案 0 :(得分:0)

在Windows中,以下代码应该可以解决问题:

import win32api
import win32con

print "Doing stuff; press F12 to interrupt."
While True:
    # Do stuff here.
    if win32api.GetAsyncKeyState(win32con.VK_F12) != 0:
        break