pyautogui的英文帮助文档:pyautogui.readthedocs.io/en/latest
这里的注释都在指上一行代码的意思,而不是下一行
import pyautogui
# 使用之前先导入库
import time
# 导入时间库,用来制作延迟\等待时间,后面有讲
import pyperclip
# 复制粘贴的库,方便输入中文,后面有讲
screenWidth, screenHeight = pyautogui.size()
# 获取主显示器的大小,用命令行运行后会把结果输出到命令行,当然可以简写:pyautogui.size()
currentMouseX, currentMouseY = pyautogui.position()
# 获取鼠标的坐标位置(x,y),同样以返回值形式显示
# 简写:pyautogui.position()
pyautogui.moveTo(100, 150)
# 把鼠标移动到100,150坐标(x=100,y=150)
pyautogui.moveTo(500, 500, duration=2)
# 把鼠标移到500,500坐标,移动到那里需要2秒(看上去像是缓慢移动)
pyautogui.moveTo(500, 500, 2)
# 上面那行代码的简写版
pyautogui.moveTo(None, 500)
# x坐标保持不动,y坐标为500,同理y也可以这样写
pyautogui.dragTo(100, 200, button='left')
# 按住左键拖动到100,200
# 左键为left,右键为right,中键为middle
pyautogui.drag(100, 200, button='left')
# 以当前坐标拖动,拖动到距离坐标为100,200的坐标
pyautogui.click()
pyautogui.doubleClick() # 双击鼠标
pyautogui.tripleClick() # 点3下鼠标
pyautogui.middleClick() # 在中间点击鼠标,一般配合找图来用(后面有写)
# 点击鼠标
pyautogui.click(100, 150)
# 在坐标为100,150的位置点击1下,也可以这么写:pyautogui.click(x=100, y=200)
pyautogui.click(100, 150, 3)
# 在坐标为100,150的位置点击3下
pyautogui.click(clicks=2, interval=0.25)
# 点击两次,每次间隔0.25秒
pyautogui.move(400, 0)
# 鼠标移动到当前位置往右400个像素的地方
pyautogui.mouseDown()
# 按下鼠标右键(不松开)
pyautogui.mouseUp()
# 抬起鼠标右键(松开了)
# mouseUp()括号里也可以添加参数的,如button='right'改成松开左键
pyautogui.click('button.png')
# 在屏幕上找到与button.png相似的像素,并点击它
# 自动找图很方便,比如如果你要点击一个总是乱动的按钮
# 可以把按钮截图下来,然后让pyautogui来点击
# 这个找图的功能识别不是很快,为750毫秒左右才能找到
pyautogui.middleClick('button.png')
# 点击这个图片的中间位置
# 同理也可以搭配双击\3击来找图
# 截图推荐使用snipaste,还可以看坐标
# snipaste:www.snipaste.com
# ======================================
pyautogui.write('Hello world!', interval=0.25)
# 输入Hello world!,但是每打一个字母隔0.25秒打另一个字母
pyautogui.press('esc')
# 按一下esc键,其他键包括space,enter,shift等
with pyautogui.hold('shift'):
pyautogui.press(['left', 'left', 'left', 'left'])
# 按住shift键不放
# 按左方向键4次
# 然后就会自动松开shift键
pyautogui.hotkey('ctrl', 'c')
# 按ctrl+c热键组合,还可以是任何组合,如ctrl+v,del+down等
pyautogui.hotkey('ctrl', 'shift', 'esc')
# 组合热键可以是3个或者更多,比如108个
pyautogui.keyDown('shift')
# 按住shift键
pyautogui.keyUp('shift')
# 松开shift键
pyautogui.press(['left', 'left', 'left'])
# 按下3次键盘左键,可以简写为pyautogui.press('left', 3)
# 或者写为pyautogui.press('left', presses=3)
# 这些是有效的键:
['\t', '\n', '\r', ' ', '!', '"', '#', '$', '%', '&', "'", '(',
')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`',
'a', 'b', 'c', 'd', 'e','f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~',
'accept', 'add', 'alt', 'altleft', 'altright', 'apps', 'backspace',
'browserback', 'browserfavorites', 'browserforward', 'browserhome',
'browserrefresh', 'browsersearch', 'browserstop', 'capslock', 'clear',
'convert', 'ctrl', 'ctrlleft', 'ctrlright', 'decimal', 'del', 'delete',
'divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute', 'f1', 'f10',
'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2', 'f20',
'f21', 'f22', 'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9',
'final', 'fn', 'hanguel', 'hangul', 'hanja', 'help', 'home', 'insert', 'junja',
'kana', 'kanji', 'launchapp1', 'launchapp2', 'launchmail',
'launchmediaselect', 'left', 'modechange', 'multiply', 'nexttrack',
'nonconvert', 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6',
'num7', 'num8', 'num9', 'numlock', 'pagedown', 'pageup', 'pause', 'pgdn',
'pgup', 'playpause', 'prevtrack', 'print', 'printscreen', 'prntscrn',
'prtsc', 'prtscr', 'return', 'right', 'scrolllock', 'select', 'separator',
'shift', 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab',
'up', 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen',
'command', 'option', 'optionleft', 'optionright']
# ======================================
time.sleep(3)
# 等待3秒后再进行下一步操作
# 可以搭配来写:
pyautogui.moveTo(725, 360)
time.sleep(3)
pyautogui.middleClick()
# 把鼠标移到725,360后等3秒,再点击中间一下
def wait():
time.sleep(3)
return
# 定义一个函数,作用是等待3秒
# 我们可以把之前的搭配改成这样:
pyautogui.moveTo(725, 360)
wait()
pyautogui.middleClick()
# 效果一样
# ======================================
pyperclip.copy('https://www.baidu.com/')
# 复制https://www.baidu.com/到剪贴板
pyperclip.paste()
# 使用ctrl+v粘贴
# 也可以使用pyautogui.hotkey('ctrl','v')来粘贴
# 这个copy的好处就是可以输入中文等各种语言文字
# 默认pyautogui的键盘输入只能按shift,然后一个一个字母打来输入中文
已经大致了解了,下面是演示阶段:
# 一些连起来的操作
# 这里的cptl()是函数调用,后面有讲
pyautogui.hotkey('ctrl','4')
pyautogui.tripleClick(60, 1010)
cptl()
pyautogui.click(37, 243)
pyautogui.press("f2")
pyautogui.hotkey('ctrl','v')
pyautogui.press("backspace")
pyautogui.press("3")
pyautogui.press("enter")
# 视频3
pyautogui.click(37, 343)
pyautogui.press("f2")
pyautogui.press("1")
pyautogui.press("enter")
# 图片1
pyautogui.click(37, 443)
pyautogui.press("f2")
pyautogui.press("2")
pyautogui.press("enter")
# 图片2
pyautogui.click(37, 543)
pyautogui.press("f2")
pyautogui.press("3")
pyautogui.press("enter")
# 图片3
# 也可以这样,wait5()和wait2()等等都是函数,后面有讲
# 这里的路径前面加一个r来确认是个路径,不然容易出错
pyautogui.click(r".\img\hj2.png")
pyautogui.click(r".\img\qr.png")
wait()
pyautogui.press("up",5)
pyautogui.click(r".\img\hd.png")
wait()
pyautogui.click(r".\img\dk.png")
pyautogui.click(r".\img\qd.png")
wait5()
pyautogui.press("up",10)
pyautogui.click(r".\img\scfm.png")
wait()
pyautogui.click(r".\img\bd.png")
wait()
pyautogui.click(r".\img\sc.png")
wait2()
pyautogui.click(r".\img\33.png")
pyautogui.hotkey('alt','o')
wait()
pyautogui.click(r".\img\qd2.png")
wait()
pyautogui.click(r".\img\qd3.png")
wait10()
pyautogui.press("down",10)
pyautogui.click(r".\img\tz.png")
wait2()
pyautogui.click(r".\img\dz.png")
pyautogui.click(r".\img\gz.png")
pyautogui.mouseDown(1532, 652)
pyautogui.dragTo(1581, 693, 0.5, button='left')
pyautogui.click(768, 793)
pyautogui.press("5")
pyautogui.click(1080, 749, 2)
函数的使用:
# 一个用于调用的函数
# 在其他类里面可以这样引用:
# from time import wait5, wait2, wait
# 这个类的名称为time.py,跟import time没关系,要分清
import time
def wait():
time.sleep(3)
return
def wait2():
time.sleep(2)
return
def wait5():
time.sleep(5)
return
# 另一个函数,调用时使用cptl()即可,然后就会执行一遍函数内的代码
def cptl():
pyautogui.hotkey('ctrl','c')
wait2()
pyautogui.hotkey('ctrl','c')
wait2()
pyautogui.hotkey('win','d')
return
最后补充一下办公可能需要的:
# 删除桌面后缀为1.mp4和2.mp4结尾的文件
# 这个只检查桌面有没有,不会遍历到子文件夹
import os
import glob
path =r'C:\Users\Administrator\Desktop'
for infile in glob.glob(os.path.join(path, '*1.mp4')):
os.remove(infile)
for infile in glob.glob(os.path.join(path, '*2.mp4')):
os.remove(infile)