如何等到其他代码完成后才要求输入键盘?

时间:2019-05-19 13:26:00

标签: python msvcrt

我试图让用户按下某个键,然后执行某些操作,但是我不希望在程序要求用户输入键之前,当用户按下键时记录该键。例如:

from msvcrt import kbhit, getch
from time import sleep

#executing some_code1
sleep(1)
.
.
.
#executing some_code2
.
.
.
sleep(1)
print("Now you may press any key")

while True:
    if kbhit():
        #run code123

如果运行此命令,并且在程序执行该打印功能之前按任意随机键,则在打印功能之后,程序立即运行code123。我希望用户在按下任何按钮之前先阅读问题。使用msvcrt模块有什么方法可以做到这一点?

我已经尝试过使用诸如标志之类的东西来尝试仅在完成所有其他操作之后才触发代码。像这样:

from msvcrt import kbhit, getch
from time import sleep

ok = False
#do stuff
sleep(2)
#do stuff
print("Now you may press any key")
ok = True

if ok:
    while True:
        if kbhit():
            print("did it work?")
            break

我希望程序等待,直到到达循环的部分,直到用户按下了某个东西为止,但是好像用户在循环代码运行之前就按下了某个东西,它会以某种方式记录用户的按键按下并运行上代码完成后,紧接在kbhit()之后的代码。

0 个答案:

没有答案