Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘

Posted 闹闹不闹!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘相关的知识,希望对你有一定的参考价值。

Python 有趣的模块之pynupt ——通过pynput控制鼠标和键盘

文章目录

1️⃣简介

🚀🚀🚀学会控制鼠标和键盘是实现自动化的捷径!🚀🚀🚀

pynput是第三方库,所以在使用pynput之前需要下载pynput包。

  • 下载方式1:在终端输入pip install pynput下载包
  • 下载方式2:进入pypi官网:https://pypi.org➡️搜索pynput➡️选择版本➡️点击pip install pynput
  • 下载方式3:点击底部Python ackages➡️搜索pynput➡️点击Install




2️⃣鼠标控制与移动

⭐第一步:为了控制和模拟鼠标移动,所以需要从pynput中导入mouse模块。

from pynput import mouse 		# 导入mouse模块

⭐第二步:使用Controller()方法。

m = mouse.Controller()            # 创建一个鼠标

⭐第三步:移动鼠标在屏幕上的位置。

屏幕坐标以(0,0)为基准点位于屏幕的左上角,往右移动x轴坐标增加,往左移动x轴坐标减小。往下移动y轴坐标增加,往上移动y轴坐标减小。

可以使用print()打印鼠标的位置。


1.🍭绝对位置:

m.position = (800,600)           # 将鼠标移动到指定位置
print(f'鼠标位置为:m.position') # 打印鼠标位置

2.🍭相对位置:

m.move(100,100)					# 以(0,0)或上一个position的位置为准
print(f'鼠标位置为:m.position') #打印鼠标位置

第四步:模拟鼠标按键:

  1. 🍭单击左键:

📖方式一:

m.press(mouse.Button.left)          # 按下鼠标左键(单击)
m.release(mouse.Button.left)        # 松开鼠标左键

🌌补:使用press+position+release可实现拖拽功能

🌟注意:使用press按下后,必须要使用release松开。否则相对于现实中操作鼠标一直按下左键不松手

📖方式二:

m.click(mouse.Button.left, 1)         # 单击鼠标左键

🙌 区别:直接完成了一次点击松手操作。

  1. 🍭单击右键:

📖方式一:

m.press(mouse.Button.right)          # 按下鼠标右键(单击)
m.release(mouse.Button.right)        # 松开鼠标右键

📖方式二:

m.click(mouse.Button.right, 1)         # 单击鼠标右键
  1. 🍭双击:
m.click(mouse.Button.left, 2)         # 双击(左键)
  1. 🍭鼠标滚轮:

类似于上述将的position,x轴坐标增加往右移动,x轴坐标减小往左移动。y轴坐标增加往下移动,y轴坐标减小往上移动。

x轴使用较少,绝大部分页面不会出现左右滚动条。

m.scroll(0,2)                       # 向下移动

📘完整代码⬇️:

from pynput import mouse         # 导入mouse模块
m = mouse.Controller()           # 创建一个鼠标
m.position = (800,600)           # 将鼠标移动到指定位置
print(f'鼠标位置为:m.position')    # 打印鼠标位置
m.move(100,100)                     # 相对于(800,600)在移动(100,100)
print(f'鼠标位置为:m.position')    # 打印鼠标位置
# 方式一
# m.press(mouse.Button.left)          # 按下鼠标左键(单击)
# m.release(mouse.Button.left)        # 松开鼠标左键
# 方式二
m.click(mouse.Button.left, 1)         # 单击鼠标左键

m.press(mouse.Button.right)          # 按下鼠标右键(单击)
m.release(mouse.Button.right)        # 松开鼠标右键
m.click(mouse.Button.right, 1)		 # 单击鼠标右键

# 双击
m.click(mouse.Button.left, 2)         # 双击(左键)

m.scroll(0,2)                       # x 左右滚动, y 上



3️⃣键盘控制与输入

⭐第一步:为了键盘输入,所以需要从pynput中导入keyboard模块。

from pynput import keyboard         # 导入keyboard模块

⭐第二步:使用Controller()方法。

k = keyboard.Controller()           # 创建一个键盘

⭐第三步:模拟按键

k.press('a')          # 按下a
k.release('a')        # 松开a

🌟注意:引号内可以是任意字符包括汉字,但只能是单个。后续会教大家输入一句话。

⭐第四步:按特殊键(空格,shift等)

k.press(keyboard.Key.space)         # 按下空格键
k.release(keyboard.Key.space)       # 松开空格键
k.press(keyboard.Key.shift)         # 按下shift键
k.release(keyboard.Key.shift)       # 松开shift键

⭐第五步:输入一句话

k.type('Hello everybody!')

📘完整代码⬇️:

from pynput import keyboard         # 导入keyboard模块
k = keyboard.Controller()           # 创建一个键盘

k.press('a')          # 按下a
k.release('a')        # 松开a

k.press(keyboard.Key.space)         # 按下空格键
k.release(keyboard.Key.space)       # 松开空格键
k.press(keyboard.Key.shift)         # 按下shift键
k.release(keyboard.Key.shift)       # 松开shift键

k.type('Hello everybody!')



4️⃣结语📢

如果你学会了这些还不知道用pynput来干什么。那我教你可以实现打开应用,自动浏览网页,与女朋友微信聊天等。应用程序是无限的,你可以使用这种方法构建任何类型的自动化工具。

🎁打开软件代码分享:https://blink.csdn.net/details/1511416
🎁微信发送信息代码分享: https://blink.csdn.net/details/1511454




python 模块之 bisect

    python一个有趣的模块,bisect,感觉挺有趣,怎么有趣呢,下面来给你道来。

   我们先生成一个list

   

data=[4,8,7,1]
data.sort()

打印这个list 

[1,4,7,8]

导入 bisect

import  bisect

插入数据

bisect.insort(data,3)

打印data

[1, 3, 4, 7, 8]

可见插入后没有打破原来的list排序

我们再使用领一个函数

print(bisect.bisect(data,2))

打印1

这里是打印的插入的位置。但是不会真正的插入

 bisect_left 和 bisect_right 函数,该函数用入处理将会插入重复数值的情况,返回将会插入的位置

print(bisect.bisect_left(data,2))
print(bisect.bisect_right(data,2))
结果:
1 1

不会插入的,但是

 insort_left  和 insort_right 就是插入

bisect.insort_right(data,2)
bisect.insort_left(data,2)

执行结果

[1, 2, 2, 4, 7, 8]

结果一样,插入不一样。

 

开源地址:https://github.com/liwanlei/

 联系我:QQ:952943386 email:[email protected]  qq群:194704520  新群:683894834

 


以上是关于Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘的主要内容,如果未能解决你的问题,请参考以下文章

趁着课余时间学点Python(十五)有趣的小模块

Python/模块与包之模块

python之argparse 模块

python基础之模块与包

python 模块之 bisect

Python基础(11)_python模块之time模块rando模块hashlibos模块