我正在尝试编写一个侦听事件(剪贴板内容的更改)并将剪贴板内容写入文件(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