剪贴板/ pyperclip的重复输出

时间:2018-06-07 15:50:05

标签: python python-3.x clipboard pyperclip

我想在txt中创建本地副本(ctrl + c)历史记录,但在输出中我不断获取重复条目。

我的代码:

import keyboard
import win32clipboard

print('Waiting Ctrl+C\n')    

while True

    if keyboard.is_pressed('ctrl+c'):
        win32clipboard.OpenClipboard()
        data = win32clipboard.GetClipboardData()
        a = open('E:\Python\copyhistory.txt', 'a')
        a.write(data)  # text
        a.close()
        win32clipboard.CloseClipboard()
        print('printed')

输出变得很复杂。我也试过pyperclip,但这也没有帮助。 同样的问题也存在于pyperclip中。

Pyperclip示例如下:

import pyperclip
import keyboard

while True:
    if keyboard.is_pressed('ctrl+c'):
        a = pyperclip.paste()
        print(a)
代码1的

终端输出: 等待Ctrl + C.     印刷的 然后是40行"打印"

与pyperclip相同,代码2与pyperclip输出超过700行相同的输出,输出应该打印一次。

我在这里做错了,有什么想法吗?

1 个答案:

答案 0 :(得分:0)

由于key_down和key_up之间的延迟而出现问题。通过读取key_down或key_up可以防止这种情况。

我试过怎么做,但这对我来说已经死路一条,所以我决定在剪贴板中使用差异的输出。