**
一键成为“键盘侠”
**
今天阿冲给大家分享一个库(pynput)
在互联网高度发展的现代,各色各样的社交 app 层出不穷,人们在享受聊天的过程中,难免会出现口舌之争,而有时候对方说的很过分的时候,这时候我们就可以采用以牙还牙的方式怼回去,而我们嫌打字太麻烦的时候,这时候就可以考虑用程序来帮忙了,这次给大家带来的是用 python 快速发消息。
1 pynput 简介
pynput是python的一个第三方库,使用前需要安装,pynput的功能主要是对鼠标和键盘进行监听和控制,通过对键盘和鼠标的控制达到与人工操作达到相同的效果。
2 安装pynput
以windows为例,在cmd命令行中使用 pip对pynput进行安装,输入:pip install pynput 然后按下键盘的Enter键即开始安装,当命令行最后出现Successfully installed pynput-1.7.1 则说明pynput安装成功了。
3 导入pynput
以python官方的编译器为例(IDLE)
>>> import pynput
>>> import pynput as p
>>> from pynput import *
推荐使用这三种导入方式。
4 pynput用法
导入pynput库后,可以看到有两个对象,keyboard和mouse。完成这个程序只需要keyboard类,mouse类不做叙述。
通过keyboard = p.keyboard生成一个键盘对象,看看它有什么内容。
东西很多,分为两个大类Controller和Listener,今天咱们需要的是Controller类. 通过ctrl_keyboard = keyboard.Controller()实例化一个键盘控制类对象。ctrl_keyboard中有很多方法供咱们使用,例如press()方法。
运行后,我的编辑窗口就出现了一个"a",这个字母生成在哪里取决于,光标在哪里。
ctrl_keyboard.type()方法,type不仅有类型的意思,还有打字(type writer)的意思,所以这个方法的用法就是打印出括号里的文字,例如ctrl_keyboard.type(‘hello pynput’),运行截图如下。
这次我把光标放在了下面的输入框中,输出结果就出现在那里。 为模拟人的输入,我们还需要按下“Enter”键发送消息,但在press方法中输入perss('enter'),程序就会报错,enter属于长名字按钮,press()直接能操作的只能是一个字符,不必灰心,pynput早就为我们想好了解决办法,pynput提供了一个Key类,这个Key类里面装了键盘上的所有大于1个字符的按键,通过使用key = keyboard.Key生成一个key对象,key.enter,key.alt,key.f1,key.home...等等。 press()的作用是按下按钮,为了下次也能按下按钮,按钮按下后应当在释放按钮,release()横空出世,它们俩总是形影不离。
| 首先 | 其次 |
|---|---|
| ctrl_keyboard.press(key.enter) | ctrl_keyboard.release(key.enter) |
5 time库辅助
咱们现在能模拟打字,模拟按enter键了。也就是说只需要把光标放在聊天框中,自动发消息能实现了,但往往咱们没有足够的时间把光标放在聊天框上,这时候就需要另一个库来帮帮咱们了——time库。
time库
咱们只需学习time库中的一个方法即可——sleep(),sleep顾名思义,就是睡觉,让计算机睡觉,括号里填入时间,单位为秒,用法:time.sleep(5),让程序停止工作5秒。
6 pynput实战
既然咱们的目的是当喷子,那么我咱们可以把想说的话写在一个文件夹里,截图如下。这些话在网上都能找到,实属不雅我打????了。
到时候咱们只需用python一条一条的读出来即可。
使用如下代码即可(相关用法不是本篇重点不做叙述)。其主要作用是将写脏话的文件打开拆开成一句一句的话储存到wen 这个变量中。
就在这时我的小号给我发来了消息。
show-time
相关代码截图如下:
7 pynput结束语
对pynput感兴趣的小伙伴呢,可以参考pypi社区的pynput介绍,pypi网址:https://pypi.org/project/pynput/
本文只是初步涉及到pynput,抛砖引玉,更多功能等待大家发掘,本篇由于时间仓促,本篇定有不少缺点,遗漏或错误,恳请广大读者不吝指正。