Python 屏幕自动化,操控剪贴板在输入框中填写中文

Posted songofhawk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 屏幕自动化,操控剪贴板在输入框中填写中文相关的知识,希望对你有一定的参考价值。

使用pyautogui做屏幕自动化的时候,发现没法用write方法在输入框中输入中文——想想也有道理,毕竟write只是对键盘操作的封装,而键盘能输入什么内容,完全取决于输入法;但如果想输入点东西,还要先操作切换输入法,实在太复杂了,所以就想用剪贴板的复制粘贴来实现。

然而pyautogui并没有操控剪贴板的api,可能是觉得其他库已经做得很好了吧。这个其他库就是pyperclip。

(搜索的时候还发现了另外一个名字更像的库,叫做clipboard,然而已经n年前就不维护了——项目主页上写着:“我刚刚做完这个项目,就看到pyperclip已经实现了所有功能,好吧,我这个名字更贴切,大家自由选择吧”。哈哈哈,心疼作者10秒钟。)

pyperclip的使用非常简单,常用方法就是copy和paste两个。经测试,剪贴板内容可以完美支持中文。示例如下:

import pyperclip as pc
x = "这是一段要复制粘贴的文本"
pc.copy(x)
a = pc.paste()
print(a)

Output:

这是一段要复制粘贴的文本

库的安装命令是 pip install pyperclip

注意:这个paste方法,用途并不是把剪贴板内容粘贴到当前输入框,而是“粘贴”为一个字符串变量。。。这是个伪粘贴!所以为了真正粘到输入框,还得借助pyautogui中的hotkey方法:
import pyperclip as pc
import pyautogui as auto

x = "这是一段要复制粘贴的文本"
pc.copy(x)
auto.hotky(\'ctrl\',\'v\')

以上是关于Python 屏幕自动化,操控剪贴板在输入框中填写中文的主要内容,如果未能解决你的问题,请参考以下文章

Flutter WebView安卓端输入框不能长按粘贴

嗅探“打印屏幕”键以自动将其内容附加到撰写的邮件上[关闭]

我的手机找不到黏贴板。

python WEB UI自动化在日期框中动态输入当前日期

如何从用于使用 Selenium 填写表单的 chrome 自动填充框中选择值

如何根据公式自动选择 OpenOffice Calc 单元格?