我想在后台运行一个简单的python脚本,该脚本从剪贴板读取文本并将其打印出来。这是我的代码。
#!/usr/bin/env python
import Tkinter
last_clipboard = ""
def get_clipboard():
global last_clipboard
root = Tkinter.Tk()
root.withdraw() # Hide the main window (optional)
text_in_clipboard = root.clipboard_get()
if text_in_clipboard != last_clipboard:
last_clipboard = text_in_clipboard
print last_clipboard
while True:
get_clipboard()
这可以按预期工作,但是它消耗过多的CPU(100%CPU)。
如何在不消耗大量能量的情况下使其正常工作?
26
如果您所使用的框架完全支持,请使用基于事件的代码来检测剪贴板中的更改,而不是循环。持续获取剪贴板直到更改为止,或者听系统告诉您更改了剪贴板,这是有区别的。
—
Stefan
@dessert我从未在python中完成过,但是这似乎是GTK的解决方案:stackoverflow.com/a/25961646/985296(没有提及任何平台依赖性)。
—
Stefan
@dessert如果您和JPMC想要讨论此主题是开还是关,请打开一个元线程。请不要在此参数中使用注释。(注释清理完成,主题锁定了一个星期,等待您的元讨论,但同时也停止了评论争论)
—
托马斯·沃德