我在ipython筆記本中運行一些數據分析。一臺獨立的機器收集一些數據並將它們保存到服務器文件夾中,筆記本電腦會定期掃描此服務器以查找新文件並分析它們。ipython筆記本中while循環的優雅中斷
我在while循環中檢查每一秒是否有新文件。目前我已經設置它來分析一些新文件時終止。不過,我想要在按鍵時終止。
我試圖嘗試醒目鍵盤中斷,因爲這裏建議:How to kill a while loop with a keystroke?
,但它似乎並沒有與IPython的筆記本電腦(我使用Windows)工作。
使用openCV的keywait對我很有用,但我想知道是否有其他方法,而不必導入opencv。
我也試圖實現一個按鈕的小工具,中斷循環,因爲這樣的:
from ipywidgets import widgets
import time
%pylab inline
button = widgets.Button(description='Press to stop')
display(button)
class Mode():
def __init__(self):
self.value='running'
mode=Mode()
def on_button_clicked(b):
mode.value='stopped'
button.on_click(on_button_clicked)
while True:
time.sleep(1)
if mode.value=='stopped':
break
但我看到的是,循環基本上忽略了按下按鈕。
作爲參考,這不起作用的原因是內核不處理按鈕點擊,直到它完成運行單元。 –