Python自动化:利用Python模拟鼠标键盘操作

pyautogui是一个纯Python的GUI自动化工具,其目的是可以用程序自动控制鼠标和键盘操作
提示:可以使用微信截图可以获取鼠标的坐标或颜色等信息

安装

  • 普通安装pip install pyautogui
  • 国内镜像安装pip install -i https://mirrors.aliyun.com/pypi/simple/ pyautogui(推荐,安装更快)
  • 导入

  • import pyautogui as p
  • 获取参数

  • width,height = p.size():获取当前屏幕分辨率
  • x,y = p.position():获取当前鼠标所在的位置
  • 鼠标移动、拖动与滚动

  • p.moveTo(x, y):移动鼠标到指定坐标,可指定移动的时间duration
  • 举例:p.moveTo(width/2, height/2,duration=1):1秒内移动到屏幕中央
  • p.moveRel(xOffset, xOffset, duration):鼠标相对移动
  • xOffset:相对x
  • yOffset:相对y
  • duration:移动时间,单位:秒
  • p.dragTo(x, y, duration=0.5):将鼠标拖动到指定位置
  • p.scroll(click):滚轮滚动,click代表滚动的距离,正数向上,负数向下
  • 鼠标单击、双击与右击

  • p.click():单击当前鼠标所在的位置
  • x=None :x坐标
  • y=None :y坐标
  • clicks=1:单击次数
  • interval=0.0 :单击间隔时间
  • button :单击方式,‘left’, ‘middle’, ‘right’
  • p.doubleClick():双击,参数见单击
  • p.leftClick()、p.rightClick()、p.middleClick():左击、右击、中击,参数见单击
  • 键盘

  • p.typewrite(‘Hello World!’,interval=0.1):每隔0.1秒输入一个字符
  • 举例:p.typewrite(‘nihao1!’,interval=0.1):配合输入法输入中文
  • p.press(‘enter’):按键(按下+松开),esc、enter、a、1、F1等
  • p.keyDown(key):按下某键
  • p.keyUp(key):松开某键
  • p.hotkey(‘win’, ‘e’):按下组合键
  • import pyautogui as p
    import pyperclip
    pyperclip.copy("你是谁?") # 复制到剪切板
    print(pyperclip.paste())  # 读取剪切板的内容
    p.hotkey("ctrl","v") # 输入中文
    

    消息框

  • p.alert(text, title):消息提示框
  • text:输入提示或说明
  • title:消息框标题
  • p.confirm(text, title,buttons):按钮选择框,返回选择结果
  • buttons:选择框的选择,格式为列表,如[“是”,“否”,“不清楚”]
  • p.prompt(text,title):文本输入框,返回输入内容
  • p.password(text,title,mask):密码输入框,返回输入内容
  • mask:密码显示内容
  • 屏幕截图

  • p.screenshot( ):截取屏幕上的图像,并返回PIL图像对象
  • import pyautogui as p
    # 截取整个屏幕
    screenshot = p.screenshot()
    # 显示截图
    screenshot.show()
    

    查找图片

    此功能还需要安装pillow库和opencv-python(用于指定精确度confidence)

    coords = p.locateOnScreen('folder.png') #在当前屏幕中查找指定图片(图片需要由系统截图功能截取的图)
    coords = p.locateOnScreen('folder.png',confidence=0.9) # 减低匹配精确度
    x,y=p.center(coords) #获取定位到的图中间点坐标
    p.click(x,y) #右击该坐标点
    

    举例:考生评语录入

    import random
    import pyautogui as p
    import pyperclip
    with open('高三评语.txt','r',encoding='utf-8')as f: # 打开文件
        content=f.read() # 读取评语
    comment_list = content.split("\n") # 分割评语
    print(f"评语总条数:{len(comment_list)}")
    p.sleep(1)
    print("start.")
    for i in range(788):
        p.click(649,576)    #单击文本框
        comment = random.choice(comment_list)   # 随机选择一句评语
        pyperclip.copy(comment)    # 复制到剪贴板
        p.hotkey("ctrl","a")    # 全选替换
        p.hotkey("ctrl","v")    # 输入评语
        p.click(1047,652)   # 单击保存按钮,下一个
        p.sleep(0.2) # 等待0.2秒
        print(f"已成功写入{i+1}行:")
    print("end....." )
    

    作者:信息技术王凤龙

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python自动化:利用Python模拟鼠标键盘操作

    发表回复