本篇文章给大家谈谈情怀打七有没有挂,以及情怀pk对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 后会有期——七代雅阁使用报告 自从今年三月底把...
2025-07-26 0
作者:憶逍遥
链接:https://zhuanlan.zhihu.com/p/1886208522875819057
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
PyAutoGUI,你就可以让Python帮你"搬砖",解放双手,干点儿更有意思的事情!
PyAutoGUI是一个Python库,能够让Python控制鼠标和键盘,实现GUI自动化。它可以:
总之,PyAutoGUI可以模拟人类在电脑上的各种操作,让你的Python程序成为一个"电脑操作员"。
安装超简单,只需一行命令:
pip install pyautogui
安装完成后,我们来测试一下是否安装成功:
import pyautoguiprint(pyautogui.position()) # 显示当前鼠标位置
运行后,你会看到当前鼠标指针的坐标位置,说明安装成功!
在控制鼠标之前,我们先了解一下屏幕大小:
import pyautogui# 获取屏幕的宽度和高度screen_width, screen_height = pyautogui.size()print(f"屏幕宽度: {screen_width}, 屏幕高度: {screen_height}")
我们可以将鼠标移动到屏幕的特定位置:
import pyautoguiimport time# 移动鼠标到坐标(100, 100)pyautogui.moveTo(100, 100, duration=1) # duration是移动所需时间(秒)# 从当前位置相对移动pyautogui.move(100, 0, duration=1) # 向右移动100像素
点击操作也很简单:
import pyautoguiimport time# 先移动再点击pyautogui.moveTo(100, 100, duration=1)pyautogui.click() # 在当前位置左键单击# 也可以直接在指定位置点击pyautogui.click(x=200, y=200) # 在(200, 200)处左键单击# 右键点击pyautogui.rightClick(x=300, y=300)# 双击pyautogui.doubleClick(x=400, y=400)
有时我们需要拖动一些东西:
import pyautoguiimport time# 从(100, 100)拖拽到(300, 300)pyautogui.dragTo(300, 300, duration=1, button='left')# 从当前位置相对拖拽pyautogui.drag(100, 0, duration=1, button='left') # 向右拖拽100像素
import pyautoguiimport time# 向上滚动10个单位pyautogui.scroll(10)# 向下滚动10个单位pyautogui.scroll(-10)
PyAutoGUI不仅能控制鼠标,还能模拟键盘输入:
import pyautoguiimport time# 点击一个文本框pyautogui.click(x=100, y=100)time.sleep(0.5) # 等待点击生效# 输入文字pyautogui.write('Hello, PyAutoGUI!')# 可以控制输入速度pyautogui.write('这是慢速输入', interval=0.2) # 每个字符间隔0.2秒
对于Shift、Ctrl、Alt等特殊按键,可以这样使用:
import pyautoguiimport time# 按下并释放一个键pyautogui.press('enter')# 组合键pyautogui.hotkey('ctrl', 'c') # 复制pyautogui.hotkey('ctrl', 'v') # 粘贴# 按下不释放pyautogui.keyDown('shift')pyautogui.press('4') # 输入$pyautogui.keyUp('shift')
PyAutoGUI支持的特殊按键名称包括:
PyAutoGUI的高级功能是可以截图和查找屏幕上的图像位置:
import pyautogui# 对整个屏幕进行截图screenshot = pyautogui.screenshot()screenshot.save('我的屏幕截图.png')# 对指定区域截图region_screenshot = pyautogui.screenshot(region=(0, 0, 300, 400)) # 左上角300x400的区域region_screenshot.save('区域截图.png')
这个功能非常有用,可以找到屏幕上特定图像的位置:
import pyautogui# 查找屏幕上的图像位置try: position = pyautogui.locateOnScreen('目标图片.png') print(f"找到图片,位置: {position}") # 获取图像的中心点 center = pyautogui.center(position) print(f"图片中心点: {center}") # 点击图像中心 pyautogui.click(center)except: print("未找到指定图片")
图像定位在自动化测试中特别有用,比如自动点击某个按钮、识别特定的界面元素等。
PyAutoGUI有一个安全机制,当你把鼠标快速移动到屏幕的左上角时,程序会暂停(引发异常)。这个功能是为了防止程序失控,让你有机会终止程序。
如果你不需要这个功能,可以关闭它:
import pyautogui# 关闭故障保护pyautogui.FAILSAFE = False
但建议保留这个功能,以防万一。
自动化操作最好添加适当的暂停,让程序有时间反应:
import pyautoguiimport time# 全局暂停设置pyautogui.PAUSE = 0.5 # 每次操作后暂停0.5秒# 或者使用time.sleeppyautogui.click()time.sleep(1) # 等待1秒pyautogui.press('enter')
在编写脚本时,我们经常需要知道要点击的位置坐标,这个小工具很有用:
import pyautoguiimport timeprint("请将鼠标移到目标位置,5秒后记录坐标")for i in range(5, 0, -1): print(i) time.sleep(1)x, y = pyautogui.position()print(f"当前鼠标位置:x={x}, y={y}")
PyAutoGUI还提供了简单的消息框功能:
import pyautogui# 显示一个警告框pyautogui.alert(text='操作已完成', title='提示', button='OK')# 确认框response = pyautogui.confirm(text='是否继续?', title='确认', buttons=['是', '否', '取消'])print(f"用户选择了:{response}")# 输入框name = pyautogui.prompt(text='请输入你的名字', title='输入', default='')print(f"你好,{name}")# 密码输入框password = pyautogui.password(text='请输入密码', title='密码', default='', mask='*')
PyAutoGUI是一个功能强大的Python自动化库,可以帮助你:
是不是感觉学会了这个,工作效率能提高一大截?
相关文章
本篇文章给大家谈谈情怀打七有没有挂,以及情怀pk对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 后会有期——七代雅阁使用报告 自从今年三月底把...
2025-07-26 0
由中国互联网协会主办的2025(第二十四届 中国互联网大会于7月23日—25日在京召开,大会主题为“数驱新质•智创未来”。在7月24日上午举办的“人工...
2025-07-26 0
近日,2025国际低空经济博览会暨低空经济基础设施发展大会在上海国家会展中心举行。浙江省绍兴市越城区精心组织14家低空经济代表性企业参展,集中展示40...
2025-07-26 0
最近,国家有关部门,约谈了美团阿里京东三大外卖巨头,约谈内容核心总结就一句话:外卖战打归打,可必须理性,必须遵纪守法。俗话说,上天不会掉下馅饼,要掉也...
2025-07-26 0
数码博主数码闲聊站爆料称,华为三折叠旗舰迭代机型Mate XTs(研发代号GreenLan)已定档9月前后发布,将延续前代玄黑、瑞红配色,并新增皓白、...
2025-07-26 0
手机号码在被注销或者停用后,经过大约3个月的“冻结”,被运营商重新投放市场供新用户使用,这种“二次放号”本是盘活有限闲置号码资源的常见做法,却也将用户...
2025-07-26 0
央视新闻联播镜头中,西藏林芝派镇的雅鲁藏布江畔,巨型盾构机正缓缓切入喜马拉雅山脉的花岗岩山体。这个被称为“全球超级工程”的雅鲁藏布江下游水电项目,以其...
2025-07-26 0
23岁以前,龚琦从没想过自己会当上CEO。他不是传统意义的“好学生”,没有耀眼的学历背景,也没有拿得出手的文艺特长,上一次受到表扬还是初二数学考试拿满...
2025-07-26 0
发表评论