修改clipboarg时执行函数

时间:2017-08-23 07:48:23

标签: python python-3.x tkinter

我需要一个小脚本,它将剪贴板的内容放在一个变量中,然后"做事情" (即以变量作为参数执行其他函数)。每次修改剪贴板时脚本都必须这样做。

现在我有:

./images/page-background.png

但是我在一段时间后出现错误:def get_clipboard(): root = Tk() root.withdraw() try: return root.clipboard_get() except: return "" if __name__ == '__main__': cb = "" while True: cb_new = get_clipboard() if cb_new == cb or cb_new == "": continue cb = cb_new print(cb) # Here I will call other functions print("---------------------------------------------") time.sleep(0.1) 。我想这是因为unable to realloc 28675 bytes循环,但我不知道如何以不同的方式做到这一点。我尝试使用while,但我不了解它是如何工作的,以及它是否是我需要的。

1 个答案:

答案 0 :(得分:1)

get_clipboard函数创建一个tkinter窗口但从未正确销毁它。在循环中执行此操作,每秒10次,累积内存,直到没有足够的空间来创建另一个窗口并且脚本崩溃。

将功能更改为:

def get_clipboard():
    root = Tk()
    root.withdraw()
    try:
        return root.clipboard_get()
    except:
        return ""
    finally:
        root.destroy()