解放双手!用 Python 控制你的鼠标和键盘
在工作中难免遇到需要在电脑上做一些重复的点击或者提交表单等操作,如果能通过 Python 预先写好相关的操作指令,让它帮你操作,然后你自己去刷网页打游戏,岂不是很爽?】
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789
那么如何使用 Python 来控制我们的鼠标和键盘呢?
一、安装pyautogui库
我们可以先安装一下 pyauogui 这个库,通过它你就可以写一些 Python 脚本来控制你的鼠标和键盘了,比如你可以定义鼠标在哪个位置点击,定义键盘在什么时候输入什么内容等,从而达到自动化操作所有你想要操作的软件应用,值得说的一点是,他可以运行在 Win、MacOS、Linux平台上。
你可以通过 pip 进行安装:
python3 -m pip install pyautogui
源码:
https://github.com/asweigart/pyautogui
pip主页:
https://pypi.org/project/PyAutoGUI/
二、操作鼠标
安装完之后,就可以使用它了,比如我们现在想要知道鼠标的位置就可以通过 position 方法获取:
也可以写一个方法来实时获取鼠标的位置:
通过 while 循环不断监听鼠标当前的位置,运行一波就是这样:
想要调用鼠标的点击方法可以这样:
单击:
pyautogui.click()
右击:
pyautogui.click(button='right')
双击:
pyautogui.doubleClick()
比如现在我的桌面有一张帅照:
想使用 Python 来操作鼠标去打开它,那么就可以这样,把鼠标轻轻的放在帅照上面,然后获取一下鼠标在这个位置的坐标:
可以发现这张照片的位置是在 (74,197),那么就可以调用鼠标的双击方法:
我们在 doubleClick 方法中传入了坐标位置,所以它可以将鼠标移动的位置进行双击。
当然,你也可以调用 moveTo 方法来移动鼠标,比如让鼠标移动到 100,200 的位置就可以这样:
pg.moveTo(100,200,2)
这里的 2 是移动秒数的意思,默认为 0.1 ,快速移动的那种。
想要拖拽鼠标,可以调用 dragTo 方法,比如:
pg.dragTo(300, 400, 2, button='left')
表示的是从当前位置拖动到指定坐标的位置,其中的 2 代表移动时间,button 可以设置是左键还是右键。
三、操作键盘
接着我们来操作键盘。
可以通过 press 来调用键盘的操作,比如:
按下回车:
pyautogui.press('enter')
按下左键:
pyautogui.press('left')
按下 CTRL:
pyautogui.press('ctrl')
快捷键的话可以使用 hotkey 方法,比如:
按下 Ctrl + Shift + T:
pyautogui.hotkey('ctrl', 'shift', 't')
复制:
pyautogui.hotkey('ctrl', 'c')
按住不动可以使用 keyDown 方法,释放按键可以使用 keyUp 方法,比如:
切换窗口:
运行一波就是这样:
刚刚的 pg.PAUSE=1 指的是每隔一秒执行一个操作指令。
想要控制键盘输入内容,可以使用 write 方法,比如:
输入 hellopython:
pg.write('hello Python !', interval=0.3)
四、实战
知道了这些你就可以去玩一些有意思的事了,举几个简单的例子给你乐呵乐呵。
比如指定它去浏览器搜索内容:
运行一波就是这样:
是不是有点 selenium 的内味了。
又比如操作它去微信聊天:
运行一波:
再举一个官方的例子,你可以让它去画图:
运行一波就是这样:
ok,以上就是今天给大家带来的分享,看完这个,自动填写表单啥的不在话下了吧?希望对你有帮助,那么我们下回见!
解放双手!用 Python 控制你的鼠标和键盘的更多相关文章
- 使用 Python 控制自己的电脑和键盘是一种什么样的体验?python学习的正确姿势
可能有时候你需要在电脑做一些重复的点击或者提交表单等操作,如果能通过 Python 预先写好相关的操作指令,让它帮你操作,然后你自己爱干嘛干嘛去,有点 “按键精灵” 的意思,是不是感觉有点爽呢? 那么 ...
- 10行Python代码自动清理电脑内重复文件,解放双手!
大家好,又到了Python办公自动化系列. 今天分享一个系统层面的自动化案例: 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做 ...
- 写完批处理脚本,再写个Gradle脚本,解放双手
前言 上一篇写个批处理来帮忙干活---遍历&字符串处理中,我们已经学习如何写批处理脚本来帮我们做一些简单的重复性工作,本篇继续来学习如何用 Gradle 写脚本,让它也来帮我们干活 Gradl ...
- 解放双手,markdown文章神器,Typora+PicGo+七牛云图床实现自动上传图片
本文主要分享使用Typora作为Markdown编辑器,PicGo为上传图片工具,使用七牛云做存储来解放双手实现图片的自动化上传与管理.提高写作效率,提升逼格.用过 Markdown 的朋友一定会深深 ...
- Selenium2+python自动化12-操作元素(键盘和鼠标事件)
前言 在前面的几篇中重点介绍了一些元素的到位方法,到位到元素后,接下来就是需要操作元素了.本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件 有些web界面的选项菜单需要鼠标悬停在某个元素 ...
- [python] PyMouse、PyKeyboard用python操作鼠标和键盘
1.PyUserInput 简介 PyUserInput是一个使用python的跨平台的操作鼠标和键盘的模块,非常方便使用.支持的平台及依赖如下: Linux - Xlib Mac - Quart ...
- 用Python监听鼠标和键盘事件
PyHook是一个基于Python的“钩子”库,主要用于监听当前电脑上鼠标和键盘的事件.这个库依赖于另一个Python库PyWin32,如同名字所显示的,PyWin32只能运行在Windows平台,所 ...
- python控制selenium点击登录按钮时报错 unknown error: Element is not clickable at point
利用python控制selenium进行一个网页的登录时报错: C:\Users\Desktop\selenium\chrome>python chrome.py selenium.common ...
- Python模拟鼠标和键盘操作实现重复性操作
前言 由于工作需要,要利用某软件去采集数据,做重复的动作大概500多次.所以想写一个程序代替人,去点击和输入. 一开始的思路有两个:1.用Python或者windows对此软件直接操作.2.利用Pyt ...
随机推荐
- vue中使用ts时如何导入mixins
方法一 // mixins.ts import { Vue } from "vue-property-decorator"; export class TableSelect ex ...
- MYSQL 之 JDBC(三): 增删改查(一)通过Statement执行更新操作
Statement测试 /** * 通过JDBC向指定的数据表中插入一条记录 * 1. Statement:用于执行sql语句的对象 * 1.1 通过Connection的createStatemen ...
- java 面向对象(七):类结构 方法(四)递归方法
1.定义:递归方法:一个方法体内调用它自身.2.如何理解递归方法?> 方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无须循环控制.> 递归一定要向已知方向递归,否则这种 ...
- Unity-Editor
Undo.RecordObject [MenuItem("Example/Random Rotate")] static void RandomRotate() { var tra ...
- 万字长文,62道Java核心面试题,一次性打包送给积极向上的你
先看再点赞,给自己一点思考的时间,微信搜索[沉默王二]关注这个靠才华苟且的程序员.本文 GitHub github.com/itwanger 已收录,里面还有一线大厂整理的面试题,以及我的系列文章. ...
- easyui的组合网格:combogrid的选中事件
jQuery EasyUI的API文档中写到: “数据表格下拉框事件完全扩展自combo(自定义下拉框)和datagrid(数据表格)” 这也就是说,我们完全可以将combo和datagrid的事件拿 ...
- 通过hmail搭建一个内网测试的邮件服务器
我们测试的软件基本上都是支持邮件功能,如果你的测试环境是在外网的话那还好说,可以直接使用QQ邮箱.163邮箱等.但是如果是测试环境在内网,无法直接访问到外网的时候,搭建一个邮件服务器就很有必 ...
- 2019CSP-J T4 加工零件
题目描述 凯凯的工厂正在有条不紊地生产一种神奇的零件,神奇的零件的生产过程自然也很神奇.工厂里有 n 位工人,工人们从 1 ∼n 编号.某些工人之间存在双向的零件传送带.保证每两名工人之间最多只存在一 ...
- C#中的类与对象
类:说白了就是类型,是对具体事物的一种抽象总结. 对象:一个具体的事物. 类与对象的关系,类实例化就会得到一个对象,同样一个对象也应该属于某一个类.例如张三这个人,他是一个对象,同时他属于人类,在程序 ...
- AI面试之SVM推导
SVM现在主流的有两个方法.一个是传统的推导,计算支持向量求解的方法,一个是近几年兴起的梯度下降的方法. 梯度下降方法的核心是使用了hinge loss作为损失函数,所以最近也有人提出的深度SVM其实 ...