Python PyCharm:msvcrt.kbhit()和msvcrt.getch()不工作?
我试图在PyCharm中从控制台读取一个字符(不按enter键),但没有效果。 函数Python PyCharm:msvcrt.kbhit()和msvcrt.getch()不工作?,python,pycharm,msvcrt,getch,kbhit,Python,Pycharm,Msvcrt,Getch,Kbhit,我试图在PyCharm中从控制台读取一个字符(不按enter键),但没有效果。 函数msvcrt.getch()停止代码,但不会对按键做出反应(甚至回车),并且msvcrt.kbhit()始终返回0。例如,此代码不打印任何内容: import msvcrt while 1: if msvcrt.kbhit(): print 'reading' print 'done' 我使用的是Windows7,PyCharm 3.4(与空闲状态下的heppens相同) 怎么了?有没有
msvcrt.getch()
停止代码,但不会对按键做出反应(甚至回车),并且msvcrt.kbhit()
始终返回0。例如,此代码不打印任何内容:
import msvcrt
while 1:
if msvcrt.kbhit():
print 'reading'
print 'done'
我使用的是Windows7,PyCharm 3.4(与空闲状态下的heppens相同)
怎么了?有没有其他方法可以直接读取输入而无需输入?可以在
运行
窗口的特殊模式下进行
- 选中输出控制台中的
运行/调试配置中的设置复选框模拟终端
key.lower()
您正在尝试将
与
进行比较
将键
转换为字符串
,然后比较:
import msvcrt
while True:
if msvcrt.kbhit():
key = str(msvcrt.getch())
if key == "b'w'":
print(key)
要在命令行中运行程序,请转到:编辑配置>执行>启用“在输出控制台中模拟终端”此处存在相同问题。似乎没有任何方法可以在运行控制台中捕获按键。我真的希望有人能解决这个问题。这里也是一样,
key=msvcrt.getch()
在PyCharm 5.0.4中不起作用。我要求intellij tracker解决这个问题。如果你也想要它,你可以在这里投票:@VitBernatik I似乎也有同样的问题。有什么办法吗?还是没用。即使我选中了“模拟终端”复选框,我仍然会在pycharm中的kbhit中得到false,在常规控制台中得到true(如果我按了任何键)。
import msvcrt
while True:
if msvcrt.kbhit():
key = str(msvcrt.getch())
if key == "b'w'":
print(key)