我正在嘗試編寫一個偵聽事件(剪貼板內容的更改)並將剪貼板內容寫入文件(on-change)的小剪貼板記錄器(用於Linux)。使用while循環來監聽事件?
我已經想出一個簡單的while循環與剪貼板模塊pyperclip:
import pyperclip
recent_value = ""
while True:
tmp_value = pyperclip.paste()
if tmp_value != recent_value:
recent_value = tmp_value
with open(".clipboard_history.txt", "a") as f:
f.write(recent_value + "\n")
所以我的第一個問題是,我可以實際運行一段時間真正的循環來「聽」還是將消耗內存太多或通常效率低下或不好的做法?
第二個問題是,我如何在後臺運行這個像shell作業控制(&符)?
我是否應該像建議here或某種事件循環或線程魔法一樣使用守護進程?
我基本上想要一些位於後臺並偵聽事件(剪貼板內容更改)的東西,對它作出反應(寫入文件)並再次等待。
============================
編輯:感謝您的輸入! +新問題:如果我使用線程,我仍然需要睡眠方法嗎?
線程將被浪費在此代碼上,因爲此代碼執行此操作並且僅此操作。但是,如果您的程序想要執行其他操作,而此代碼正在運行,那麼您只需要使用線程。另一個例外是,如果你有一個圖形用戶界面(會在程序中做一些其他的事情) – 3rdaccountQQ