用 Python 实现了哪些办公自动化?从此高效办公!学会从此告别加班!

Python的确是一个了不起的编程语言和工具,它可以用来构建各种脚本和实用程序,这些脚本和实用程序可以帮助你化繁为简、让很多事情都实现自动化…以下是从海外博客上学习积累到的,做个分享,如果感兴趣,会陆陆续续做些编辑补充。

利用Python实现电脑鼠标和键盘自动化

这次,我们会使用Python模块PyAutoGUI来使我们的鼠标和键盘自动化。曾经看到许多与PyAutoGUI相关的文章,不过在这里我们可以尝试提供一些使用此模块的独特玩法。

安装步骤

Windows上:在该系统安装和使用PyAutoGUI非常容易。如果已安装pip,则可以用pip,从PyPI安装它。

pip install pyautogui

Os X上:需要安装一些额外的模块才能运行PyAutoGui。

pip3 install pyobjc-core
pip3 install pyobjc
pip3 install pyautogui

Linux上:同样的,也必须安装一些软件包。

pip3 install python3-xlib
sudo apt-get install scrot
sudo apt-get install python3-tk
sudo apt-get install python3-dev
pip3 install pyautogui

好的,开始吧,使用PyAutoGUI执行以下操作

(注:如果你想制作出更有逼格的自动化工具,则可以将后面的模块集成到Selenium、OpenCV等其它一些出色的模块中)

1)安全功能

安全-停顿

“停顿“是PyAutoGUI中的一个选项,用于设置每次模块调用之间的“停顿“时间,假设,我们有两个功能,一个是write操作,另一个是click操作,则经配置该选项,第二个功能在配置的“一个时间间隔”之后执行。

pyautogui.PAUSE = dur # 2.5

安全-故障安全

此选项的作用类似于使用CTRL + C取消程序,如果此选项设置成True,则pyautogui.FailSafeException通过将鼠标移至屏幕的左上角来中止程序并声明异常。

pyautogui.FAILSAFE = True

2)鼠标功能

鼠标-移动

我们可以使用[pyautogui class]的以下功能将鼠标移至屏幕的x,y坐标

动图封面

鼠标移动

pyautogui.moveTo(x, y, duration=num_seconds)

其中x和y是屏幕上的XY坐标,x向右增加,y向向下增加;duration是以秒为单位的时间,该时间使鼠标的移动根据时间而变慢;还有另一个功能,它使鼠标相对于鼠标的当前位置移动,这简单地意味着它将从当前鼠标位置向左和向右移动鼠标(100,100)。

pyautogui.moveRel(xOffset, yOffset, duration=num_seconds)
# 你也可以使用 pyautogui.move(xOffset, yOffset) 去实现

这里,xOffset和yOffset分别是鼠标x和y到当前位置的增量。

鼠标-拖拽

另一个很棒的功能是“拖动鼠标”,拖动指的是在按住单击按钮的同时移动鼠标,你可以通过以下功能实现拖动。
动图封面

pyautogui.dragTo(x, y, duration=num_seconds)
pyautogui.dragRel(xOffset, yOffset, duration=num_seconds)
# 你仍旧可以用 pyautogui.drag(xOffset, yOffset) 

鼠标-点击次数

日常中我们可以使用鼠标执行不同类型的点击,同样PyAutoGUI可以让我们实现许多相似的功能:

  • 单击、双击和三次点击
  • 鼠标按键向上和向下事件
  • 左点击、右点击和中间点击

语法

pyautogui.click(x=None, y=None, clicks=1, interval=0.0, 
button='left', duration=0.0)

click()功能的实践

pyautogui.click() # 在现有位置点击鼠标
pyautogui.click(20,10) # 移动到 20, 10, 然后左点鼠标
# 你也可以传递一个python的元组 (20,10)
pyautogui.click(button='right') # 右键单击鼠标
pyautogui.click(button='middle') # 点击鼠标中间键
pyautogui.click(button='left') # 左键单击鼠标
# 你也可以通过上面的方法传递它
pyautogui.click(clicks=2) # 双击鼠标左键
pyautogui.click(clicks=2, interval=0.25) # 双击鼠标左键,但两次单击之间的间隔为0.25秒
pyautogui.click(button='right', clicks=3, interval=0.25) ## 击鼠标右键,两次单击之间有0.25秒的暂停

也有单独的功能来完成相同的工作。

pyautogui.doubleClick()#鼠标左键双击
pyautogui.rightClick()#右键单击
pyautogui.middleClick()#中键单击
pyautogui.trippleClick()#左键三次
每个功能都有更多可选属性,例如x和y坐标,持续时间和间隔

鼠标的点击和拖动包括按下鼠标按键并向上放开鼠标按键,如果要单独执行这些操作,请调用mouseDown()和mouseUp()函数,它们具有相同的x,y和button。

3)滚动功能

可以通过调用scroll()函数并传递整数个“单击”来滚动鼠标滑轮,在不同平台上,“单击”中的滚动量会有所不同。

语法

pyautogui.scroll(clicks, x=None, y=None)

你可以使用如下scroll()功能:

动图封面

鼠标滚动

pyautogui.scroll(10)   #向上滚动10次“单击” 
pyautogui.scroll(-10)  #向下滚动10次“单击” 
pyautogui.scroll(10,x = 100,y = 100)  #将鼠标光标移至100、200,然后向上滚动10次“点击”

你可以hscroll()在linux和OSX平台中左右滚动。

4)键盘功能

键盘-键入

我们可以在pyautogui class中的函数的帮助下录入字母、单词或句子,它还提供了每个键入单词之间的延迟,这使它更加炫酷。

pyautogui.typewrite('Hello world!') #即可输出“ Hello world!”

如果要为这个句子添加动画效果,而且希望电脑在一小段时间后编写这个句子,可以使用interval属性。

pyautogui.typewrite('Hello world!',interval = 0.25)
#打印出“ Hello world!” 每个字符后延迟0.25秒

键盘-按特殊指令按键

动图封面

按特殊按键

要按上面这些键,请调用该press()函数并将字符串中定义的值传递给该函数。

要按下多个键,传递一个元组或键列表,还需要采用另一个可选属性presses=1 来限制按键的按下次数;还有一个属性interval=0.0,它是设定每次按键之间的间隔。

定义了此功能的键,可以通过以下选项进行检索pyautogui.KEYBOARD_KEYS,它会输出所支持的已定义键的列表。例如:enter,up,down,esc,f1。参见:

[Keyboard Control Functionspyautogui.readthedocs.io/en/latest/keyboard.html#keyboard-keys]

pyautogui.press('enter')  #按Enter键
pyautogui.press('f1')     #按F1键
pyautogui.press('left')   #按向左箭头键

press()只不过是keyUp()和keyDown()功能的封装包,它模拟按下一个键然后放开它。

pyautogui.keyDown('shift')  #按住Shift键
pyautogui.keyUp('shift')    #释放Shift键

按键-快捷方式

为了方便快捷地按下键盘快捷键,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')       #释放CTRL按钮

5)消息提示功能

PyAutoGUI还显示JavaScript样式的提示框,一共有四种提示框功能:

消息提示-报错/警示

显示带有文本和单个“确定”按钮的简单消息框,返回单击的按钮的文本。

img

报错

pyautogui.alert(text='', title='', button='OK')

消息提示-确认窗口

显示带有“确定”和“取消”按钮的消息框,可以自定义按钮的数量和文本,返回单击的按钮的文本。

img

确认窗口

pyautogui.confirm(text='', title='', buttons=['OK', 'Cancel'])

消息提示-提醒窗口

显示带有文本输入以及“确定”和“取消”按钮的消息框。返回输入的文本,如果单击“取消”,则返回“无”。

img

提醒窗口

pyautogui.prompt(text='', title='' , default='')

消息提示-密码输入

显示带有文本输入以及“确定”和“取消”按钮的消息框,输入的字符显示为*。返回输入的文本,如果单击“取消”,则返回“无”。

img

密码录入

password(text='', title='', default='', mask='*')

6)屏幕截图功能

PyAutoGUI可以截取屏幕截图,将其保存到文件中,并在屏幕上定位图像。如果你需要单击一个按钮(图片类型)并想在屏幕上找到它的位置,这个方法会很有用。

截屏-截图

调用screenshot()将返回一个Image对象,传递文件名字符串将把屏幕截图保存到文件中,并将其作为Image对象返回。

im1 = pyautogui.screenshot()
im2 = pyautogui.screenshot('my_screenshot.png')

如果你不需要整个屏幕的屏幕截图,那么还有一个可选的region关键字参数,,你可以传递区域的左侧、顶部、宽度以及高度的四整数元组来捕获:

im = pyautogui.screenshot(region =(0,0,300,400))

截屏-在屏幕上找到图像

如果想快速定位屏幕中上的图像文件,当然可以在屏幕上直观地找到它们,譬如,假设计算器应用程序正在您的计算机上运行,如下所示:

img

同时其中包含一个按钮的图像,譬如是按钮“7”:

img

你可以调用该locateOnScreen(‘7key.png’)函数以获取屏幕坐标,返回值为4整数元组:左、上、宽度、高度,不过,如果你只想在屏幕上显示图像的x和y坐标,则可以调用locateCenterOnScreen()它,该方法将仅返回x和y坐标;如果找不到屏幕上的图像,它将升高ImageNotFoundException;如果要单击该图像或对象,只需将先前函数的返回值中的x和y坐标传递给click()function。

![img](https://img-blog.csdnimg.cn/img_convert/e7afdbf851b29ce62ff1ec1ba9c8055c.png

7)其它

其它-屏幕尺寸

为了获取屏幕尺寸,PyAutoGUI具有一个size()返回整数元组的函数:(宽度,高度)表示主监视器的尺寸。

pyautogui.size()    #输出:Size(width = 1366,height = 768)

其它-光标位置

为了获取光标的当前位置,PyAutoGUI有一个函数position()返回整数元组:(x,y)表示鼠标光标的当前位置。

pyautogui.position()#输出 :点(x = 487,y = 664)

后续会陆陆续续补上一些其它有趣的办公自动化技巧

在学习python中有任何困难不懂的可以微信扫描下方CSDN官方认证二维码加入python交流学习,多多交流问题,互帮互助,这里有不错的学习教程和开发工具。
(这里每天都会不定时更新python不同题型和教程,希望大家一起学习,一起进步)


点此免费领取:CSDN大礼包:《python学习路线&全套学习资料》免费分享

Python学习大纲

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

入门学习视频

Python实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述
在这里插入图片描述
最后,千万别辜负自己当时开始的一腔热血,一起变强大变优秀。

猜你喜欢

转载自blog.csdn.net/m0_59162248/article/details/129769324