4、第一个自动化脚本:环境准备、录制与回放、手动编写第一个自动化流程

好,咱们正式开始动手了。

前面几章聊了不少概念和理论,我知道你肯定手痒了。说实话,我当年学自动化的时候,最烦的就是光讲不练。所以这一章,咱们直接来真的——从零开始,跑通你的第一个自动化脚本。

4.1 环境准备:先把家伙事儿备齐

做自动化,说白了就是让机器替人干活。但机器也得有工具,对吧?

我个人习惯把环境分成三块:运行环境开发工具依赖库。咱们一个一个来。

4.1.1 运行环境:Python 安装

我用的是 Python 3.8 以上版本。为什么?因为很多自动化库在 3.6 以下会有兼容问题,我在项目中踩过这个坑。

你可以去官网下载,或者用 Anaconda 也行。我个人推荐 Anaconda,因为它自带了很多数据分析的包,后面做流程挖掘用得上。

小提示:安装时记得勾选「Add Python to PATH」。这一步很多人会忘,结果命令行里敲 python 死活没反应。嗯,别问我怎么知道的。

4.1.2 开发工具:选个顺手的编辑器

工欲善其事,必先利其器。我推荐三个:

工具 适合人群 我为什么推荐
VS Code 大多数开发者 插件丰富,调试方便,免费
PyCharm 专业 Python 用户 智能提示强,重构功能好
Jupyter Notebook 数据分析/快速验证 边写边跑,适合探索性开发

我个人习惯用 VS Code。轻量,启动快,而且装个 Python 插件就能跑。你想想看,如果每次打开编辑器都要等半分钟,那多影响心情。

4.1.3 依赖库:装好核心包

咱们第一个脚本用到的库不多,就两个:

pip install pyautogui
pip install opencv-python

pyautogui 是控制鼠标键盘的,opencv-python 是用来做图像识别的。这两个组合起来,基本能搞定 80% 的桌面自动化场景。

注意:如果你用的是 Mac,记得给终端授权「辅助功能」权限。否则 pyautogui 的点击操作会失效。我曾经因为这个排查了整整一下午,最后发现是权限没开。

4.2 录制与回放:让机器记住你的操作

环境搭好了,咱们先玩个简单的——录制。

说白了,就是让电脑把你刚才的操作记下来,然后重放一遍。这招在重复性工作里特别管用。

4.2.1 写一个简单的录制脚本

咱们先写个脚本,记录鼠标的位置和点击:

import pyautogui
import time

print("请移动鼠标到目标位置,5秒后开始记录...")
time.sleep(5)

# 记录当前鼠标位置
x, y = pyautogui.position()
print(f"记录到位置:({x}, {y})")

# 在这个位置点击
pyautogui.click(x, y)
print("点击完成!")

跑一下试试。你会发现鼠标自己动了,然后点了一下。是不是有点意思?

4.2.2 回放:让操作自动重复

录制只是第一步,回放才是关键。咱们把刚才的操作封装成一个函数:

import pyautogui
import time

def record_and_replay(actions):
    """
    actions: 列表,每个元素是 (x, y, delay)
    """
    for x, y, delay in actions:
        time.sleep(delay)
        pyautogui.click(x, y)
        print(f"点击位置:({x}, {y})")

# 定义一组操作
my_actions = [
    (500, 300, 1),
    (700, 400, 2),
    (300, 500, 1.5)
]

print("开始回放...")
record_and_replay(my_actions)
print("回放完成!")

你想想看,如果每天都要重复点几十次同样的位置,这个脚本能帮你省多少时间?

核心思路:录制与回放的本质,就是把「人的操作」转换成「坐标+时间」的数据,然后让机器按顺序执行。这是所有 RPA 工具的基础逻辑。

4.3 手动编写第一个自动化流程:从点击到填表

录制虽然方便,但不够灵活。真正干活的时候,咱们得手写脚本。

下面我带大家写一个完整的自动化流程:打开记事本,输入文字,保存文件。

4.3.1 第一步:打开应用

import pyautogui
import subprocess
import time

# 打开记事本(Windows)
subprocess.Popen('notepad.exe')
time.sleep(1)  # 等应用启动

这里用 subprocess 而不是 os.system,是因为前者不会阻塞主进程。嗯,细节决定成败。

4.3.2 第二步:输入内容

# 输入文字
pyautogui.write('Hello, 这是我的第一个自动化脚本!', interval=0.1)

# 换行
pyautogui.press('enter')

# 再输入一行
pyautogui.write('时间戳:' + time.strftime('%Y-%m-%d %H:%M:%S'))

interval=0.1 的意思是每个字符间隔 0.1 秒。为什么要加这个?因为如果输入太快,有些应用会丢字符。我在做 ERP 系统自动化时就遇到过,输太快导致字段没填全,数据全乱了。

4.3.3 第三步:保存文件

# 模拟 Ctrl+S 保存
pyautogui.hotkey('ctrl', 's')
time.sleep(0.5)

# 输入文件名
pyautogui.write('我的第一个自动化脚本.txt')
time.sleep(0.3)

# 按回车确认保存
pyautogui.press('enter')

print("文件保存成功!")

4.3.4 完整脚本

把上面三段拼起来,就是咱们的第一个完整自动化流程:

import pyautogui
import subprocess
import time

# 1. 打开记事本
subprocess.Popen('notepad.exe')
time.sleep(1)

# 2. 输入内容
pyautogui.write('Hello, 这是我的第一个自动化脚本!', interval=0.1)
pyautogui.press('enter')
pyautogui.write('时间戳:' + time.strftime('%Y-%m-%d %H:%M:%S'))

# 3. 保存文件
pyautogui.hotkey('ctrl', 's')
time.sleep(0.5)
pyautogui.write('我的第一个自动化脚本.txt', interval=0.1)
time.sleep(0.3)
pyautogui.press('enter')

print("✅ 自动化流程执行完毕!")
避坑指南:我曾经在保存文件时忘了加 time.sleep,结果保存对话框还没弹出来,脚本就开始输入文件名了。最后文件没保存成,还弹了个报错框。所以记住:给每一步留点缓冲时间

4.4 本章小结

咱们这一章干了三件事:

  • 环境准备:装好了 Python、编辑器、以及 pyautogui 和 opencv-python 两个核心库
  • 录制与回放:学会了记录鼠标位置,并让操作自动重复
  • 手动编写:写了一个完整的「打开-输入-保存」流程

说实话,这个脚本虽然简单,但它包含了自动化的核心要素:启动应用 → 模拟操作 → 等待响应 → 完成动作。后面所有复杂的流程,本质上都是这个模式的延伸。

下一章,咱们会聊怎么让脚本更智能——比如根据屏幕上的图像来判断该点哪里。你想想看,如果脚本能「看见」按钮,那能做的事情就多太多了。

好,今天就到这儿。去跑跑你的第一个脚本吧,有问题咱们下章见。