做不完的工作,写不完的文档,粘贴不完的excel,打不完的 word,讨厌的996,今天我将会带领一个你专属的机器人送给你,让它来代替你做这些重复性的工作,只要你能动脑经把工作分解成若干步可重复的劳动,它就可以帮你工作,而你只要跷着腿休息,拿工资即可。
![442b57d931d0480411d8e69c47e58b63.png](https://img-blog.csdnimg.cn/img_convert/442b57d931d0480411d8e69c47e58b63.png)
它就可以帮你工作,而你只要瞧着腿休息拿工资即可
让我们快速进入正题。
今天将学习"如何使用Python自动化您的计算机鼠标和键盘"。
这就大家 喜欢Python的原因,它拥有我们想要的所有功能。
"进入Python世界,夫复何求。"
当然革命当家靠实干,当 尝试学习一些东西时, 只是Google和Boom, 会得到一些文章或有用的提示,更实干的方式,是让我们赶紧行动起来。
在本文中, 将使用Python模块PyAutoGUI 来自动化鼠标和键盘。 看过许多与PyAutoGUI相关的文章,但在这里 将尝试给你一些使用这个模块的独特想法。
![9bee26dc1f08431950887667a949056f.gif](https://img-blog.csdnimg.cn/img_convert/9bee26dc1f08431950887667a949056f.gif)
自动鼠标
使用PyAutoGUI的鼠标动画
PyAutoGUI的目的是为人类的 GUI自动化提供跨平台的Python模块。API设计为尽可能简单,具有合理的默认值。 将只介绍该模块的基础知识,其余的可以在PyPI 模块的文档中查找更多属性和功能。
安装:
视窗:
在Windows上,安装和使用PyAutoGUI要容易得多。在Windows上,如果安装了pip,可以使用pip从PyPI安装它。
pip install pyautogui
Os X:
在Os X上,您需要安装一些额外的模块才能运行PyAutoGui。
pip3 install pyobjc-corepip3 install pyobjcpip3 install pyautogui
Linux的:
在Linux上,您必须安装一些软件包。
pip3 install python3-xlibsudo apt-get install scrotsudo apt-get install python3-tksudo apt-get install python3-devpip3 install pyautogui
入门:
如果你想制作一个令人难以置信的自动化工具,你可以将这个模块集成到其他很棒的模块,如Selenium,OpenCV等。
您可以使用PyAutoGUI执行以下操作。
·
· (相对,固定)
· (相对,固定)
· (右,中,左,上,下,双和三)
· (向上,向下,向左和向右)
·
· (f1 - f2,所有其他键)
· (例如CTR + C)
·
·
·
·
(图像搜索):
·
·
·
·
稳定保障功能:
暂停:
Pause是PyAutoGUI中的一个选项,用于设置模块每次调用之间的暂停。例如: 有两个函数,一个是write,另一个是click,第二个函数是在配置了这个选项后配置的持续时间后执行的。
pyautogui.PAUSE = dur#2.5
安全失败:
此选项更像是使用CTRL + C取消程序。如果此选项设置为True,它会中止程序并pyautogui.FailSafeException通过将鼠标移动到屏幕的左上角来引发异常。
pyautogui.FAILSAFE = True
鼠标功能:
鼠标移动:
![9bee26dc1f08431950887667a949056f.gif](https://img-blog.csdnimg.cn/img_convert/9bee26dc1f08431950887667a949056f.gif)
鼠标移动
鼠标移动
您可以使用pyautogui类的以下功能将鼠标移动到屏幕的x,y坐标
pyautogui.moveTo(x,y,duration = num_seconds)
其中x和y是屏幕上的XY坐标。X增加向右,Y增加向下。持续时间是指根据时间使鼠标移动缓慢的时间(以秒为单位)。
还有一个函数可以将鼠标相对于鼠标的当前位置移动,这意味着它将鼠标(100,100)从当前鼠标位置向左和向右移动。
pyautogui.moveRel(xOffset,yOffset,duration = num_seconds)
#你可以使用pyautogui.move(X偏移,Y偏移)以及
这里,xOffset和yOffset分别是鼠标x和y的当前位置的增量。
拖动:
![af9906cb0b3d3174380f286852dd6047.gif](https://img-blog.csdnimg.cn/img_convert/af9906cb0b3d3174380f286852dd6047.gif)
鼠标拖动
拖动是鼠标的另一个非常重要的功能,拖动只是意味着在按住单击按钮的同时移动鼠标。您可以通过以下功能进行拖动。
pyautogui.dragTo(x,y,duration = num_seconds)
pyautogui.dragRel(xOffset,yOffset,duration = num_seconds)
#你也可以使用pyautogui.drag(xOffset,yOffset)
这些功能的说明与鼠标移动相同。
点击次数:
![958dde9671651680276542d65158d84d.gif](https://img-blog.csdnimg.cn/img_convert/958dde9671651680276542d65158d84d.gif)
不同类型的点击次数
如您所知, 可以手动使用鼠标执行不同类型的点击。PyAutoGUI可以让 使用其中的许多功能。他们之中有一些是:
· 单击,双击和三击
· 鼠标按钮上下事件
· 左,右和中间点击
语法:
pyautogui.click(x=None, y=None, clicks=1, interval=0.0, button='left', duration=0.0)
你可以使用这样的click()函数:
pyautogui.click() #在当前位置单击鼠标
pyautogui.click(20,10)#move to 20,10 ,然后单击鼠标左键
#你也可以传递一个元组(20,10)
pyautogui.click(button ='right') #右键单击鼠标
pyautogui.click(button ='middle') # middle - 点击鼠标
pyautogui.click(button ='left') # left - 点击鼠标
#你也可以通过以上方式传递它
pyautogui.click(clicks = 2) #双击鼠标左键
pyautogui.click(clicks = 2,interval = 0.25) #双击鼠标左键,但点击之间有四分之一秒的暂停
pyautogui.click(button ='right',clicks = 3,interval = 0.25) ##三击鼠标右键,点击之间间隔四分之一秒
还有单独的功能来完成相同的工作。
pyautogui.doubleClick()#执行左键双击
pyautogui.rightClick()#执行右键单击
pyautogui.middleClick()#执行中键单击
pyautogui.trippleClick()#执行左键三击
为每个函数提供更多可选属性,例如x和y坐标,持续时间和间隔。
鼠标点击和拖动包括按下鼠标按钮并将其释放回来。如果要单独执行这些操作,请调用mouseDown()和mouseUp()功能。它们具有相同的x,y和button 。
pyautogui.mouseDown(); pyautogui.mouseUp() #与鼠标左键单击功能相同
pyautogui.mouseDown(button ='right') #按下右键
pyautogui.mouseUp(button ='right',x = 100,y = 200) #将鼠标移动到100,200,然后向上释放右键。
滚动:
![f77a3ea993bfaac295005cca60063145.gif](https://img-blog.csdnimg.cn/img_convert/f77a3ea993bfaac295005cca60063145.gif)
鼠标滚动
可以通过调用scroll()函数并传递整数个"点击"来滚动来模拟鼠标滚轮。"点击"中的滚动量因平台而异。
句法:
pyautogui.scroll(点击次数,x =无,y =无)
你可以使用这样的scroll()函数:
pyautogui.scroll(10) #向上滚动10"点击"
pyautogui.scroll(-10) #向下滚动10"点击"
pyautogui.scroll(10,x = 100,y = 100) #将鼠标光标移动到100,200,然后向上滚动10"点击"
您可以hscroll()在linux和OSX平台中左右滚动。
键盘功能:
写作:
![11d6b4a8b9966fa77976eb25ba39764f.gif](https://img-blog.csdnimg.cn/img_convert/11d6b4a8b9966fa77976eb25ba39764f.gif)
用动画写单词
您可以在pyautogui类的函数的帮助下编写字母,单词或句子。它还提供每个打字单词之间的延迟,这使它更美妙。
pyautogui.typewrite('Hello world!') #打印出"Hello world!" 即刻
如果您想要为这句话设置动画并希望计算机在一小段时间后编写它,那么您可以使用interval属性。
pyautogui.typewrite('Hello world!',interval = 0.25)#打印出"Hello world!" 每个角色后延迟四分之一秒
按键:
![4b4191ad8a3fdef6ea0cb7cdeb575e77.gif](https://img-blog.csdnimg.cn/img_convert/4b4191ad8a3fdef6ea0cb7cdeb575e77.gif)
按键
要按下这些键,请调用该press()函数并将字符串中定义的值传递给函数。
要按下多个键,传递一个元组或一个键列表,它还需要另一个可选属性presses=1 来限制键的按下次数。
还有一个属性interval=0.0是每个按键之间的间隔。
定义了此功能的键,可通过以下选项检索pyautogui.KEYBOARD_KEYS 。它将打印它支持的已定义键列表。例如:enter,up,down,esc,f1。请参阅KEYBOARD_KEYS。
pyautogui.press('enter') #按Enter键
pyautogui.press('f1') #按F1键
pyautogui.press('left') #按左箭头键
press()只是包装keyUp()和keyDown()功能,模拟按下一个键,然后释放它。
pyautogui.keyDown('shift') #按住shift键
pyautogui.keyUp('shift') #释放shift键
按快捷方式:
![55b157e3e943a0c2e2f35749c59c1781.gif](https://img-blog.csdnimg.cn/img_convert/55b157e3e943a0c2e2f35749c59c1781.gif)
按快捷方式
为了使按键热键或键盘快捷键方便,hotkey()可以传递几个按键顺序按下的键,然后以相反的顺序释放。
pyautogui.hotkey('ctrl','shift','esc')#同时按CTRL + SHIFT + ESC上面的代码相当于pyautogui.keyDown('ctrl') #按住CTRL按钮pyautogui.keyDown('shift') #按住SHIFT按钮pyautogui.keyDown('esc') #按住ESC按钮pyautogui.keyUp('esc') #释放ESC按钮pyautogui.keyUp('shift') #释放SHIFT按钮pyautogui.keyUp('ctrl') #Release CTRL按钮
消息框功能:
PyAutoGUI还显示JavaScript样式的消息框。提供了四个消息框功能:
警报窗口:
![23116cd338e7626512940eb53795b5e6.png](https://img-blog.csdnimg.cn/img_convert/23116cd338e7626512940eb53795b5e6.png)
警报窗口
警报框
显示带有文本和单个"确定"按钮的简单消息框。返回单击按钮的文本。
pyautogui.alert(text ='',title ='',button ='OK')
确认窗口:
![d2b428b671f0900178e749c3c089e1dc.png](https://img-blog.csdnimg.cn/img_convert/d2b428b671f0900178e749c3c089e1dc.png)
确认窗口
确认窗口
显示带有确定和取消按钮的消息框。按钮的数量和文本可以自定义。返回单击按钮的文本。
pyautogui.confirm(text ='',title ='',buttons = ['OK','Cancel'])
提示窗口:
![eab31de6c14eda7d534d373b4a503df5.png](https://img-blog.csdnimg.cn/img_convert/eab31de6c14eda7d534d373b4a503df5.png)
确认窗口
提示窗口
显示带有文本输入的消息框,以及"确定"和"取消"按钮。返回输入的文本,如果单击取消,则返回None。
pyautogui.prompt(text ='',title ='',default ='')
密码窗口:
![abb95965baeb0ec3448a5a3e0c17b68f.png](https://img-blog.csdnimg.cn/img_convert/abb95965baeb0ec3448a5a3e0c17b68f.png)
密码窗口:
密码窗口
显示带有文本输入的消息框,以及"确定"和"取消"按钮。键入的字符显示为*。返回输入的文本,如果单击取消,则返回None。
password(text='', , default='', mask='*')
截图功能(图像搜索):
PyAutoGUI可以截取屏幕截图,将其保存到文件中,并在屏幕中查找图像。如果您有一个小图像,例如需要单击并希望在屏幕上找到它的按钮,这将非常有用
截取屏幕截图:
调用screenshot()将返回一个Image对象。传递文件名字符串会将屏幕截图保存到文件中,并将其作为Image对象返回。
im1 = pyautogui.screenshot()im2 = pyautogui.screenshot('my_screenshot.png')
region如果您不想要整个屏幕的屏幕截图,还有一个可选的关键字参数。您可以传递区域左侧,顶部,宽度和高度的四个整数元组来捕获:
im = pyautogui.screenshot(region =(0,0,300,400))
在屏幕上找到图像:
如果您有图像文件,可以在屏幕上直观地找到某些内容。例如,假设计算器应用程序正在您的计算机上运行,看起来像这样:
![dace7f421a2f0f3d47852780772b7442.png](https://img-blog.csdnimg.cn/img_convert/dace7f421a2f0f3d47852780772b7442.png)
计算器
并且您有一个按钮的图像,例如7按钮的图像:
![780361493f46776ecc2d1f8eff77fc27.png](https://img-blog.csdnimg.cn/img_convert/780361493f46776ecc2d1f8eff77fc27.png)
7按钮
你可以调用locateOnScreen('7key.png')函数来获取屏幕坐标。返回值是一个4整数元组:(左,顶,宽,高)。但是,如果您只想在屏幕上显示图像的x和y坐标,则可以调用locateCenterOnScreen()该坐标仅返回x和y坐标。如果找不到屏幕上的图像,它将会升起ImageNotFoundException 。如果要单击该图像或对象,只需将前一个函数的返回值中的x和y坐标传递给click()函数即可。要了解有关在屏幕上查找对象的更多信息,请访问此链接。
其他特性:
屏幕尺寸:
为了获得屏幕大小,PyAutoGUI有一个函数size()返回整数元组:(宽度,高度)为主监视器的大小。
pyautogui.size() #output:大小(宽度= 1366,高度= 768)
光标的位置:
为了获得光标的当前位置,PyAutoGUI有一个函数position()返回整数元组:(x,y)表示鼠标光标的当前位置。
pyautogui.position() # outpu :Point(x = 487,y = 664)
好,先介绍到这里。毫不夸张的说,从游戏代练到办公室工作,到居家旅游,这个键盘机器人都可以代办了。
![42eaefdb7c66e01a2b52ec10b2043a26.png](https://img-blog.csdnimg.cn/img_convert/42eaefdb7c66e01a2b52ec10b2043a26.png)
大家说说,你可以用这个机器人干啥,当然活少工资多,也可以分我点,哈哈。