我的知识记录

Python 模拟键盘鼠标操作:pyautogui 自动化入门

Python 用 pyautogui 控制鼠标移动点击、键盘打字和快捷键,实现重复性 GUI 操作自动化,给出完整代码和防误触、紧急停止等注意事项。

场景痛点

每天要在 ERP 里点同样的菜单、填同样的表单、导出同样的报表,点到手酸还容易漏。Python 的 pyautogui 库能模拟真实的鼠标点击、键盘输入、快捷键,把这些重复 GUI 操作录成脚本,一键跑完,比手动快十倍。

用到的库

pip install pyautogui

完整代码

import time
import pyautogui


# 安全开关:鼠标甩到屏幕左上角会抛 FailSafeException,紧急停止
pyautogui.FAILSAFE = True
pyautogui.PAUSE = 0.3   # 每个 pyautogui 动作后停顿 0.3 秒,给系统反应时间


def demo_mouse():
"""演示鼠标移动、点击、拖拽"""
sw, sh = pyautogui.size()
print(f"屏幕分辨率:{sw}x{sh}")

# 移动到屏幕中心并单击
pyautogui.moveTo(sw // 2, sh // 2, duration=0.5)
pyautogui.click()

# 相对当前位置移动 100 像素再右键
pyautogui.moveRel(100, 50, duration=0.3)
pyautogui.click(button="right")

# 拖拽:从 (100,100) 拖到 (400,300)
pyautogui.moveTo(100, 100, duration=0.3)
pyautogui.dragTo(400, 300, duration=0.5, button="left")


def demo_keyboard():
"""演示键盘输入、快捷键、组合键"""
# 等 2 秒让你切到记事本
print("2 秒后开始打字,请切到记事本...")
time.sleep(2)

# 输入一段文字
pyautogui.typewrite("Hello, this is Python auto typing.", interval=0.05)

# 按回车换行
pyautogui.press("enter")

# 快捷键:全选 Ctrl+A、复制 Ctrl+C
pyautogui.hotkey("ctrl", "a")
pyautogui.hotkey("ctrl", "c")
pyautogui.press("down")

# 输入中文需要靠剪贴板(pyautogui 不支持直接打中文)
import pyperclip
pyperclip.copy("这是从剪贴板粘贴的中文。")
pyautogui.hotkey("ctrl", "v")


def demo_hotkey_sequence():
"""演示打开运行窗口、执行命令"""
pyautogui.hotkey("win", "r")
time.sleep(0.5)
pyautogui.typewrite("notepad", interval=0.05)
pyautogui.press("enter")


def main():
# demo_mouse()
demo_keyboard()
# demo_hotkey_sequence()


if __name__ == "__main__":
main()

代码讲解

  • pyautogui.FAILSAFE = True:鼠标甩到屏幕左上角会抛异常退出脚本,是写自动化脚本时的紧急刹车。
  • pyautogui.PAUSE = 0.3:每个动作后自动 sleep 0.3 秒,避免程序比系统反应还快导致漏点。
  • moveTo(x, y, duration=0.5) 平滑移动到坐标;click(button="right") 右键点击;dragTo 拖拽。
  • typewrite 只能打 ASCII 字符,不支持中文;打中文必须靠 pyperclip.copy + Ctrl+V
  • hotkey("ctrl", "a") 模拟组合键,等价于按住 Ctrl 再按 A。
  • press("enter") 按一下回车,按键名参考 pyautogui 文档,如 enteresctabf5

运行结果

运行 demo_keyboard 后 2 秒内切到记事本,会自动打出英文句子、换行、Ctrl+A/C,再粘贴一段中文。demo_hotkey_sequence 会弹出 Win+R 运行框并自动打开记事本。整个过程鼠标键盘会"自己动",想看结果别动鼠标。

注意事项

  • 坐标写死非常脆弱:分辨率、窗口位置一变就点错。建议先用 pyautogui.locateOnScreen("button.png") 找图定位,再点击。
  • 中文输入必须走剪贴板,不要尝试 typewrite("中文"),会报错。
  • 写脚本时头几行先 time.sleep(3),给你时间切到目标窗口。
  • 远程桌面下 pyautogui 也能跑,但焦点要落在远程桌面窗口里。
  • 游戏、网银、带反外挂的软件会屏蔽模拟输入,不要用来做违规操作。
  • 紧急停止:把鼠标快速甩到屏幕左上角,FAILSAFE 会触发。

Python 模拟键盘鼠标操作:pyautogui 自动化入门

标签:

更新时间:2026-09-14 20:34:56

上一篇:Python 系统通知弹窗提醒:plyer 跨平台 Toast 通知

下一篇:Python 屏幕截图教程:pyautogui 全屏与区域截图