如何使用 Python 的 Pyperclip 将文本粘贴到单独的程序中?

How to use Python's Pyperclip to paste text on a separate program?

我正在尝试编写一个非常基本的代码,我从一个程序中复制一些文本,然后将其粘贴到另一个程序中。我不确定如何执行此操作,因为 Pyperclip 似乎只将文本粘贴到我 运行 代码所在的命令 window 上。我希望能够单击文本编辑程序,然后让我的代码将文本粘贴到那里。我附上我的代码

import pyperclip
import time
pyperclip.copy('testing')
time.sleep(5)
pyperclip.paste()

当我运行这段代码时,实际上什么也没有发生。它不粘贴任何内容,甚至不粘贴命令 window。我在那里有睡眠功能,因为那时我花时间点击文本编辑程序,以便 Python 将文本粘贴到那里,但它不起作用。

如果您只想将内容复制到另一个文本编辑器,请尝试使用 pyautogui 模块。该模块允许通过 python 代码实现 mouse/keyboard 自动化。

代码:

import pyautogui
import time

time.sleep(5)
a = "testing"

pyautogui.typewrite(a)

以上代码将在程序执行 5 秒后开始输入单词 testing,因此在此期间您必须打开文本编辑器。

pyautogui 模块最好的(或最差的)部分是它与焦点无关,即无论当前应用程序是否有焦点控制,它都会工作。

只是一个旁注,不要将 pyperclip 用于 copying/changing/accessing 剪贴板数据,而是尝试 win32clipboard,如果你在 windows,因为它可以更好地控制剪贴板。

尽管这是一个相当古老的问题,但我花了好几个小时才得到答案。我的目标是将一个数字输入另一个程序。但是,该程序会自动完成输入,因此使用 typewrite()(当前版本的 pyautogui 中的 write())会导致意外行为。

不过 pyautogui 和 pyperclip 最终帮助了我。这是我使用的代码:

import pyperclip
import time

pyperclip.copy('hello')
time.sleep(5)
with pyautogui.hold('ctrl'):
    pyautogui.press(['v'])

这个解决方案很脏,但它有效。