如何检查用户是否在不使用getch()的情况下按了Python中的键?
如果用户按下一个特定的键并在循环后继续执行,我想中断一个循环。当stdin可用时,以下代码应起作用如何检查用户是否在不使用getch()的情况下按了Python中的键?,python,debugging,pyscripter,Python,Debugging,Pyscripter,如果用户按下一个特定的键并在循环后继续执行,我想中断一个循环。当stdin可用时,以下代码应起作用 While True: # Do stuff here. if msvcrt.kbhit(): key = msvcrt.getch() if key == somekey: break 我的问题是,stdin在我用于开发的PyScripterIDE调试器中不可用。有没有其他方法可以绕过标准输入法?如有必要,解决方案可以是特
While True:
# Do stuff here.
if msvcrt.kbhit():
key = msvcrt.getch()
if key == somekey:
break
我的问题是,stdin在我用于开发的PyScripterIDE调试器中不可用。有没有其他方法可以绕过标准输入法?如有必要,解决方案可以是特定于Windows的
另外,我在Windows7上使用Python2.7,PyScripter使用“远程”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
“在Python调试器中”是什么意思?您在代码中使用的是
pdb
模块吗?@dbliss我使用的是PyScripter,它似乎没有在引擎盖下使用pdb模块。问题似乎是PyScripter调试器正在拦截stdin。我把问题重新写了一遍,让它更清楚。。