如何用击键杀死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循环终止后继续运行。
3 回答
智慧大石
TA贡献1946条经验 获得超3个赞
最简单的方法是用通常的Ctrl-C
(SIGINT)中断它。
try: while True: do_something()except KeyboardInterrupt: pass
由于要引发Ctrl-C
原因KeyboardInterrupt
,只需将其捕获到循环外部并忽略它。
Qyouu
TA贡献1786条经验 获得超11个赞
有一种解决方案不需要非标准模块,并且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
TA贡献1875条经验 获得超5个赞
以下代码适用于我。它需要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 ...
添加回答
举报
0/150
提交
取消