【问题标题】:Combining pyperclip copy-to-clipboard with pyautogui paste?将pyperclip复制到剪贴板与pyautogui粘贴相结合?
【发布时间】:2018-04-14 23:22:12
【问题描述】:

我想将从 python 加载的一些文本粘贴到浏览器字段中: 将某些内容加载到剪贴板的任何方法,然后我可以使用 Ctrl+V 粘贴。目前我看到 pyperclip.paste() 只将文本粘贴到控制台中,而不是我想要的位置。运行pyperclip.copy('sometext') 后按 Ctrl+V 没有任何作用。

import pyautogui
import pyperclip

def click():
    try:
        pyautogui.click()
    except:
        pass

pyperclip.copy('sometext')
pyautogui.moveTo(4796, 714)
click()
pyperclip.paste()
pyautogui.hotkey('ctrl', 'v', interval = 0.15)

我在这里做错了什么?另一种方法与修复一样受欢迎 - 最好避免使用pyautogui.typewrite(),因为大量文本需要很长时间

更新:似乎是pyperclip.copy('sometext') 没有将'sometext' 放入或覆盖到剪贴板的问题。 pyperclip paste 功能正常工作,pyautogui Ctrl+V

【问题讨论】:

  • pyperclip.paste() 只是将当前剪贴板内容作为字符串返回 - 它对任何应用程序都没有影响。模拟 Ctrl-V 应该可以工作 - 也许您只是在复制后需要更多延迟,让浏览器进入准备接受粘贴的状态?
  • 刚刚检查过,看起来pyperclip.copy('sometext') 没有将文本加载到剪贴板中。我单独运行该行,然后等待一段时间,然后手动按 Ctrl+V。粘贴的是我不久前复制的内容,而不是“sometext”

标签: python clipboard pyautogui pyperclip


【解决方案1】:

尝试改用pyautogui.typewrite

import pyautogui

def click():
    try:
        pyautogui.click()
    except:
        pass

pyautogui.moveTo(4796, 714)
click()
pyautogui.typewrite('sometext')

您可以找到有用的信息here

【讨论】:

    【解决方案2】:

    您可以将其存储为变量,然后使用 typewrite 输入/粘贴。

    paste_data = pyperclip.paste()
    pyautogui.typewrite(paste_data)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-14
      • 1970-01-01
      • 1970-01-01
      • 2019-08-04
      • 2012-01-08
      • 2016-09-08
      • 1970-01-01
      相关资源
      最近更新 更多