如何用击键杀死while循环?

如何用击键杀死while循环?

我正在读取串行数据并使用while循环写入csv文件。我希望用户能够在他们认为已经收集到足够的数据后杀死while循环。

while True:
    #do a bunch of serial stuff

    #if the user presses the 'esc' or 'return' key:
        break

我使用opencv做了类似的事情,但它似乎没有在这个应用程序中工作(我真的不想为此函数导入opencv)...

        # Listen for ESC or ENTER key
        c = cv.WaitKey(7) % 0x100
        if c == 27 or c == 10:
            break

所以。如何让用户摆脱循环?

另外,我不想使用键盘中断,因为脚本需要在while循环终止后继续运行。


米琪卡哇伊
浏览 445回答 3
3回答

智慧大石

最简单的方法是用通常的Ctrl-C(SIGINT)中断它。try:     while True:         do_something()except KeyboardInterrupt:     pass由于要引发Ctrl-C原因KeyboardInterrupt,只需将其捕获到循环外部并忽略它。

Qyouu

有一种解决方案不需要非标准模块,并且100%可移动import threaddef input_thread(a_list):     raw_input()     a_list.append(True)def do_stuff():     a_list = []     thread.start_new_thread(input_thread, (a_list,))     while not a_list:         stuff()

慕田峪4524236

以下代码适用于我。它需要openCV(import cv2)。该代码由一个无限循环组成,该循环不断寻找按下的键。在这种情况下,当按下'q'键时,程序结束。可以按下其他键(在此示例中为“b”或“k”)以执行不同的操作,例如更改变量值或执行功能。import cv2while True:     k = cv2.waitKey(1) & 0xFF     # press 'q' to exit     if k == ord('q'):         break     elif k == ord('b'):         # change a variable / do something ...     elif k == ord('k'):         # change a variable / do something ...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python