如何在不使用 getch() 的情况下检查用户是否按下了 Python 中的某个键?
How to check if the user pressed a key in Python without using getch()?
我想在用户按下特定键时中断循环并在循环后继续执行。当 stdin 可用时,以下代码应该可以工作。
While True:
# Do stuff here.
if msvcrt.kbhit():
key = msvcrt.getch()
if key == somekey:
break
我的问题是标准输入在我用于开发的 PyScripter IDE 调试器中不可用。还有另一种绕过标准输入的方法吗?如有必要,解决方案可以是 Windows 具体的。
P.S。我在 Windows 7 上使用 Python 2.7,PyScripter 使用 'Remote' Python 引擎(无论那意味着什么)。
P.P.S。我根据下面 dbliss 的反馈重写了这个问题。
在 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
我想在用户按下特定键时中断循环并在循环后继续执行。当 stdin 可用时,以下代码应该可以工作。
While True:
# Do stuff here.
if msvcrt.kbhit():
key = msvcrt.getch()
if key == somekey:
break
我的问题是标准输入在我用于开发的 PyScripter IDE 调试器中不可用。还有另一种绕过标准输入的方法吗?如有必要,解决方案可以是 Windows 具体的。
P.S。我在 Windows 7 上使用 Python 2.7,PyScripter 使用 'Remote' Python 引擎(无论那意味着什么)。
P.P.S。我根据下面 dbliss 的反馈重写了这个问题。
在 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