我正在编写一个Python脚本,它将检查剪贴板内容并在控制台中打印它们.下面是我正在使用的脚本.
import time
from tkinter import Tk
while True:
r = Tk()
result = r.selection_get(selection="CLIPBOARD")
print(result)
time.sleep(2)
当我运行它而不复制任何文本时,出现以下错误:
return self.tk.call(('selection', 'get') + self._options(kw))
_tkinter.TclError: CLIPBOARD selection doesn't exist or form "STRING" not defined
我了解它的出现是因为剪贴板中没有内容.复制完任何文本后,代码即可正常运行.为了解决该问题,我以以下方式重写了代码:
import time
from tkinter import Tk
r = Tk()
x = 1
while x < 2:
r.clipboard_clear()
r.clipboard_append("Starter Text")
x += 1
while True:
r.clipboard_clear()
result = r.selection_get(selection="CLIPBOARD")
print(result)
time.sleep(2)
我写这个是为了可以通过在剪贴板中放置启动文本来启动文件.这将有助于停止错误.即使它停止了错误的发生,该代码现在仍以重复的方式仅打印“入门文本”.即使将内容复制到剪贴板之后,它们似乎也没有被打印出来.
我可以得到一些有关如何避免该错误的建议,同时在我将某些内容复制到剪贴板时同时打印这些值.
解决方法:
由于这是设计行为,因此无法避免该错误,但是可以处理该错误.
import tkinter as tk
...
try:
selection = r.selection.get(selection="CLIPBOARD")
except tk.TclError:
selection = None
...