关于《python编程快速上手-让繁琐工作自动化》的学习笔记

1.安装pyautogui模块

windows上使用pip install pyautogui安装

2.走对路

  • 通过注销关闭所有程序
    停止失去控制的GUI自动化程序,最简单的方法可能是注销,注销将会关闭所有运行的程序。
  • 暂停和自动防故障装置
    将pyautogui.PAUSE变量设置为暂停的秒数,这会在出问题的时候让你有很短的时间窗口来控制鼠标和键盘。pyautogui也有自动防故障功能,将鼠标移到屏幕的左上角,会导致pyautogui产生pyautogui.FailSafeException异常,同时将停止程序。设置pyautogui.FAILSAFE=False将禁止这项功能。
>>> import pyautogui
>>> pyautogui.PAUSE=1
>>> pyautogui.FAILSAFE=True

这里导入pyautogui并将pyautogui.PAUSE设置为1,即每次函数调用后暂停一秒;将pyautogui.FAILSAFE设置为True启动自动防故障功能。

3.控制鼠标移动

pyautogui的鼠标函数使用x,y坐标。原点的x,y都是零,在屏幕的左上角。向右x坐标增加,向下y坐标增加。所有坐标都是正整数,没有负数坐标。
分辨率是屏幕的宽和高有多少个像素,如果屏幕的分辨率为1920×1080,那么左上角的坐标是(0,0),右下角的坐标是(1919,1079)。
pyautogui.size()函数返回两个整数的元组,包含屏幕的宽和高的像素值。

>>> pyautogui.size()
Size(width=1920, height=1080)
>>> width,height=pyautogui.size()
>>> width
1920
>>> height
1080
  • 移动鼠标
    pyautogui.moveTo()函数将鼠标立即移动到屏幕的指定位置,表示x,y坐标的整数值分别构成了函数的第一个和第二个参数,可选的duration整数或浮点数关键字参数,制定了将鼠标移到目的位置所需的秒数,若不指定,则默认值为0,表示立即移动。
>>> for i in range(10):
...     pyautogui.moveTo(100,100,duration=0.5)
...     pyautogui.moveTo(200,100,duration=0.5)
...     pyautogui.moveTo(200,200,duration=0.5)
...     pyautogui.moveTo(100,200,duration=0.5)

pyautogui.moveRel()函数相对于当前位置移动鼠标。

>>> for i in range(10):
...     pyautogui.moveRel(100,0,duration=0.25)
...     pyautogui.moveRel(0,100,duration=0.25)
...     pyautogui.moveRel(-100,0,duration=0.25)
...     pyautogui.moveRel(0,-100,duration=0.25)

pyautogui.moveRel()也接受3个参数:向右移动多少个像素,向下垂直移动多少个像素以及花多少时间完成移动。

  • 获取鼠标位置
    调用pyautogui.position()函数,可以确定鼠标当前的位置,它会返回函数调用时鼠标x,y坐标的元组。
>>> pyautogui.position()
Point(x=1139, y=792)
>>> pyautogui.position()
Point(x=1674, y=478)
>>> pyautogui.position()
Point(x=1919, y=1074)

4.控制鼠标交互

  • 点击鼠标
    调用pyautogui.click()方法向计算机发送虚拟的鼠标点击。点击将使用鼠标左键,点击发生在鼠标当前所在位置。若想点击屏幕上的特定位置,可以传入x,y坐标作为可选的第一第二参数。如果想要指定鼠标按键,就传入button关键字参数,值分别为’left’、‘middle’、‘right’。其他:pyautogui.doubleClick()函数执行双击鼠标左键,pyautogui.rightClick()和pyautogui.middleClick()函数将分别执行双击鼠标右键和中键。pyautogui.mouseDown()模拟按下鼠标按键,pyautogui.mouseUp()模拟释放鼠标按键。
  • 拖动鼠标
    pyautogui模块提供pyautogui.dragTo()和pyautogui.dragRel()函数将鼠标拖动到一个新位置或相对当前位置的位置。
  • 滚动鼠标
    调用pyautogui.scroll()函数实现滚动鼠标的功能,向它传递一个整形参数,说明向上或向下滚动多少个单位。(正整数表示向上滚动,负整数表示向下滚动)

5.控制键盘

  • 通过键盘发送一个字符串
    调用pyautogui.typewrite()函数向计算机发送虚拟按键。默认情况下,typewrite()函数将立即打印出完整字符串,若传入第二参数在每个字符之间添加短时间暂停。
pyautogui.typewrite('Hello World')
  • 键名
    在pyautogui中,一些不能用文本字符表示的键可以表示为短的字符串值:'esc’表示Esc键,'enter’表示Enter。除单个字符串参数,还可以向typewrite()函数传递这些键字符串的列表。
>>>pyautogui.typewrite(['a','b','left','left','X','Y'])

以上调用表示按a键,然后b键,然后按左箭头两次,最后是X和Y键

PyKeyboard属性

键盘键的字符串

含义

‘a’,‘b’,‘c’,‘A’,‘B’,‘C’,‘1’,‘2’,‘3’,’!’,’@’,’#'等

单个字符的键

‘enter’(or ‘return’ or ‘\n’)

回车键

‘esc’

Esc键

‘shiftleft’,‘shiftright’

左右Shift键

‘altleft’,‘altright’

左右Alt键

‘ctrlleft’,‘ctrlright’

左右Ctrl键

‘tab’(or ‘\t’)

Tab键

‘backspace’,‘delete’

Backspace和Delete键

‘pageup’,‘pagedown’

Page Up和Page Down键

‘home’,‘end’

Home和End键

‘up’,‘down’,‘left’,‘right’

上下左右箭头键

‘f1’,‘f2’,'f3’等等

F1至F12键

‘pause’

Pause键

‘capslock’,‘numlock’,‘acrolllock’

Caps Lock,Num Lock和Scroll Lock键

‘insert’

Ins或Insert键

‘printscreen’

Prtsc或Print Screen键

‘winleft’,‘winright’

左右Win键(windows上)

‘command’

Command键(OS X上)

‘option’

option键(OS X上)

‘volumemute’,‘volumedown’,‘volumeup’

静音、减小音量、放大音量(有些键盘没有这些键,但是操作系统仍能理解)

  • 按下和释放键盘
    像mouseDown()和mouseUp()函数一样,pyautogui.keyDown()和pyautogui.keyUp()将向计算机发送虚拟的按键和释放,它们根据参数发送字符串,为方便起见,pyautogui提供pyautogui.press()函数模拟完整的击键。
  • 快捷键组合
    调用pyautogui.hotkey()函数实现多个键的组合按下的功能。它接受多个键字符串参数,按顺序按下,再按相反的顺序释放。
>>>pyautogui.hotkey('ctrl','c')