Python kbhit()问题

时间:2013-09-07 11:41:40

标签: python python-2.7

我正在尝试编写一个非常简单的程序,在检查之前会等待x秒,然后按下一个键,这取决于这个结果将进入代码中的另一个循环。我有这段代码:

import msvcrt
import time
import sys

time.sleep(1)
if msvcrt.kbhit():
    sys.stdout.write('y')
else:
    sys.stdout.write('n')

所以我在第一次启动时按任意键(使kbhit == true)但它总是落到第二个语句并打印'n'。 有什么建议我做错了吗?

{使用Python 2.7和IDLE}

由于

1 个答案:

答案 0 :(得分:7)

msvcrt.kbhit()函数仅在其所在的程序已从Windows命令行运行时才会起作用(或者当双击其{{1}时打开控制台窗口输入和输出时}文件)。

如果您从IDLE运行或使用.py解释程序,该程序将不会连接到控制台窗口,而pythonw.exe中的console-IO commands将无效。