4、第一个自动化脚本:环境准备、录制与回放、手动编写第一个自动化流程
好,咱们正式开始动手了。
前面几章聊了不少概念和理论,我知道你肯定手痒了。说实话,我当年学自动化的时候,最烦的就是光讲不练。所以这一章,咱们直接来真的——从零开始,跑通你的第一个自动化脚本。
4.1 环境准备:先把家伙事儿备齐
做自动化,说白了就是让机器替人干活。但机器也得有工具,对吧?
我个人习惯把环境分成三块:运行环境、开发工具、依赖库。咱们一个一个来。
4.1.1 运行环境:Python 安装
我用的是 Python 3.8 以上版本。为什么?因为很多自动化库在 3.6 以下会有兼容问题,我在项目中踩过这个坑。
你可以去官网下载,或者用 Anaconda 也行。我个人推荐 Anaconda,因为它自带了很多数据分析的包,后面做流程挖掘用得上。
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% 的桌面自动化场景。
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("回放完成!")
你想想看,如果每天都要重复点几十次同样的位置,这个脚本能帮你省多少时间?
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 两个核心库
- 录制与回放:学会了记录鼠标位置,并让操作自动重复
- 手动编写:写了一个完整的「打开-输入-保存」流程
说实话,这个脚本虽然简单,但它包含了自动化的核心要素:启动应用 → 模拟操作 → 等待响应 → 完成动作。后面所有复杂的流程,本质上都是这个模式的延伸。
下一章,咱们会聊怎么让脚本更智能——比如根据屏幕上的图像来判断该点哪里。你想想看,如果脚本能「看见」按钮,那能做的事情就多太多了。
好,今天就到这儿。去跑跑你的第一个脚本吧,有问题咱们下章见。