将突出显示的文本复制到剪贴板,然后使用剪贴板将其附加到lis

2024-05-14 16:28:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用pyautogui模块forpython3(windows10)在浏览器或字处理程序中自动执行一些操作。在

浏览器中有高亮显示的文本。在

text

下面的脚本应该打印突出显示的文本

import pyautogui as pya

# double clicks on a position of the cursor
pya.doubleClick(pya.position())

list = []
# a function copy_clipboard() should be called here
var = copy_clipboard()
list.append(var) 
print(list)

输出应为:

[text]

那么copy_clipboard()函数应该是什么样子呢? 谢谢你的帮助。在


Tags: 模块text文本脚本处理程序var浏览器position
3条回答

soundstripe发布的内容是有效的,但不考虑复制前一个值时复制空值。我还添加了一行内容,用于清除剪贴板,使空值副本保持空值:

import pyautogui as pya
import pyperclip  # handy cross-platform clipboard text handler
import time

def copy_clipboard():
    pyperclip.copy("") # <- This prevents last copy replacing current copy of null.
    pya.hotkey('ctrl', 'c')
    time.sleep(.01)  # ctrl-c is usually very fast but your program may execute faster
    return pyperclip.paste()

# double clicks on a position of the cursor
pya.doubleClick(pya.position())

list = []
var = copy_clipboard()
list.append(var) 
print(list)

嗯。。。这里是:

from tkinter import Tk

def copy_clipboard():
    clipboard = Tk().clipboard_get()
    return clipboard

Tk().clipboard_get()返回剪贴板中的当前文本。在

您需要先使用pyautogui.hotkey('ctrl', 'c')。在

键盘组合键Ctrl+C可以处理大多数应用程序中突出显示的内容,应该可以很好地为您工作。使用pyautogui这个部分很容易。为了以编程方式获取剪贴板内容,如其他人所述,可以使用ctypespywin32或其他库来实现它。这里我选择了pyperclip

import pyautogui as pya
import pyperclip  # handy cross-platform clipboard text handler
import time

def copy_clipboard():
    pya.hotkey('ctrl', 'c')
    time.sleep(.01)  # ctrl-c is usually very fast but your program may execute faster
    return pyperclip.paste()

# double clicks on a position of the cursor
pya.doubleClick(pya.position())

list = []
var = copy_clipboard()
list.append(var) 
print(list)

相关问题 更多 >

    热门问题