用 AI 写自动化脚本:不会编程也能让电脑自己干活(2026)
每个月固定那两天,你要把十几个 Excel 合并成一张报表;每周要把服务器日志下下来筛一遍;每天要把微信收到的几百张图片按日期分文件夹。这些活儿的共同点是:规则很清楚、重复、且极其消耗人。用 AI 写自动化脚本,正是把这类活儿交出去的最快路径——你不需要学会编程,只需要学会把需求说清楚,剩下的代码让 AI 写。这篇文章从零开始,讲清楚环境怎么装、需求怎么描述、脚本怎么让它每天自己跑起来。
为什么这类活儿最适合交给 AI
做一个 App 或者网站,AI 要理解产品逻辑、界面交互、用户状态,出错的地方很多。但自动化脚本不一样:输入明确(一个文件夹、一张表)、输出明确(另一个文件、一封邮件)、没有界面、没有用户。这是 AI 目前成功率最高的任务类型之一——而且它错没错,你打开结果文件一眼就能看出来,验证成本极低。
更重要的是投入产出比。一个每月省你 3 小时的脚本,让 AI 写出来可能只要 20 分钟。哪怕来回改三轮,第一个月就回本了。
适合与不适合
适合:批量改文件、合并报表、定时抓数据、格式转换、文件归档、发提醒。不适合:需要登录复杂网站、要过验证码、涉及公司核心数据外传、或者规则本身你自己都说不清的活儿。
准备工作:装 Python 和 uv(约 3 分钟)
自动化脚本首选 Python,因为处理 Excel、Word、PDF、图片的现成库最全,AI 对它也最熟。装环境这一步过去劝退了很多人,现在有了 uv 就简单多了——它是 Rust 写的包管理工具,能顺带帮你把 Python 本身也装好,不用再纠结版本和虚拟环境。
# Windows:在 PowerShell 里执行
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# 装完关掉窗口重开一个,验证一下
uv --version# macOS / Linux:在终端里执行
curl -LsSf https://astral.sh/uv/install.sh | sh
uv --version之后跑脚本统一用 uv run,它会自动准备好环境,你不用手动激活任何东西。更省事的是,可以把依赖直接写在脚本文件开头(PEP 723 内联依赖格式),uv 第一次运行时会自动装好:
# /// script
# dependencies = ["openpyxl", "pandas"]
# ///
import pandas as pd
# ...你的逻辑
# 然后直接跑,依赖自动装:
# uv run merge_report.py关键一步:怎么跟 AI 描述需求
决定成败的不是你用哪个 AI 工具,而是你怎么描述这件事。绝大多数返工都源于需求说得太笼统。对比一下:
| 糟糕的描述 | 为什么不行 | 好的描述 |
|---|---|---|
| 帮我写个脚本处理 Excel | 处理什么?怎么处理?AI 只能瞎猜 | 把某文件夹下所有 xlsx 的「明细」工作表合并成一张总表 |
| 整理一下文件夹 | 整理的规则完全没说 | 按文件名里的 yyyy-mm-dd 建子文件夹并移进去,没日期的丢到 _待整理 |
| 自动发个邮件 | 发给谁、什么时候、内容是什么都没说 | 每周一 9 点把上周汇总表作为附件发给 xx@qq.com,主题带上周次 |
描述需求时,把这五件事说全,一次成功率会高很多:
- 1输入是什么:文件在哪个文件夹、什么格式、大概多少个、内容长什么样(最好直接把表头贴给它)。
- 2要做什么:一步步说,用「先……然后……最后……」的顺序,不要只说一个抽象目标。
- 3输出到哪:新文件叫什么、放哪里、什么格式、要不要保留原文件。
- 4异常怎么办:遇到格式不对的文件是跳过还是报错?重名文件是覆盖还是加后缀?这一条最容易漏,也最容易出事故。
- 5运行环境:说明你是 Windows 还是 Mac、Python 版本,让它给出能直接跑的路径写法和命令。
下面这段模板可以直接改了用:
我要一个 Python 脚本,环境是 Windows 11 + Python 3.12,用 uv run 执行。
输入:D:\报表\2026-08 下面所有 .xlsx 文件(约 20 个),
每个文件都有一张叫「明细」的工作表,表头是:日期 / 门店 / 商品 / 数量 / 金额。
要做的事:
1. 读取每个文件的「明细」工作表;
2. 增加一列「来源文件」,填该文件的文件名(不含扩展名);
3. 全部纵向合并成一张总表,按日期升序排序;
4. 再按门店做一张汇总:每个门店的总数量、总金额。
输出:在同目录生成 汇总_2026-08.xlsx,两个工作表分别叫「明细汇总」和「门店汇总」,
金额保留两位小数。原文件不要动。
异常处理:
- 如果某个文件没有「明细」工作表,跳过并在最后打印出被跳过的文件名,不要中断;
- 如果输出文件已存在,不要直接覆盖,改成带时间戳的新文件名。
请先用一段话说明你的处理思路和用到的库,我确认后再给完整代码。最后一句很重要
「先说思路,我确认后再写代码」能帮你在花时间跑之前就发现理解偏差。AI 对需求的误解,在思路阶段一眼就能看出来,等它写完 200 行再返工就亏了。
常见场景该用哪个库
你不需要背这些,但知道个大概有好处:AI 偶尔会选一个冷门或者已经停更的库,你能一眼看出不对劲,就少走很多弯路。可以在提示词里直接指定用哪个。
| 你要做的事 | 推荐库 | 备注 |
|---|---|---|
| 读写 Excel、保留原格式和公式 | openpyxl | 只支持 xlsx/xlsm,老的 xls 要先另存为 |
| 大批量数据清洗、分组统计 | pandas | 读进来算完,再交给 openpyxl 写回模板 |
| 生成 / 修改 Word 文档 | python-docx | 只支持 docx |
| 读取 PDF 文字、拆分合并 | pypdf 或 PyMuPDF | 扫描件是图片,需要另配 OCR |
| 批量改图片尺寸、加水印 | Pillow | 老牌稳定 |
| 抓网页数据 | requests + BeautifulSoup | 动态页面才需要上 Playwright |
| 监控文件夹,一有新文件就处理 | watchdog | 配合常驻运行 |
| 文件改名、移动、遍历目录 | pathlib(标准库) | 不用装,跨平台路径更安全 |
安全铁律:先 dry-run,再真跑
这是整篇文章里最该记住的一条。自动化脚本的威力在于批量,而批量的另一面是:一旦逻辑写错,它会用同样的速度批量毁掉你的文件。AI 写的删除、移动、覆盖类脚本,绝对不能拿到真实数据上第一次就直接跑。
- 在提示词里明确要求:加一个 DRY_RUN 开关,为 True 时只打印「将要做什么」,不实际改动任何文件。
- 先复制一份测试数据到单独的文件夹,在副本上跑通了再对真实目录动手。
- 涉及删除的,一律先改成「移动到 _回收 文件夹」,而不是真删。确认没问题过几天再手动清空。
- 重要目录先整体备份一份,或者确认云盘 / 版本历史是开着的。
- 第一次真跑时限定范围,比如只处理前 3 个文件,看结果对了再放开。
真实事故长这样
「把文件名里没有日期的文件移到 _待整理」——AI 把判断写反了,结果把所有带日期的正常文件全移走了。有 DRY_RUN 的话,你在打印结果里一眼就能发现;没有的话,就是几千个文件的手动复原。
让脚本定时自动跑起来
脚本能跑通只是一半,真正的解放是它自己按时跑,你什么都不用做。Windows 用「任务计划程序」,macOS / Linux 用 cron。
Windows:任务计划程序
最稳的做法不是直接调 Python,而是先写一个 .bat 启动文件,再让计划任务去调这个 bat。这样能一并解决工作目录和日志两个坑:
@echo off
rem 保存为 D:\scripts\run.bat
rem cd /d 确保工作目录正确,否则脚本里的相对路径会失效
cd /d D:\scripts
rem 用 pythonw.exe 而不是 python.exe,运行时不会弹黑框
"C:\Users\你的用户名\AppData\Local\Programs\Python\Python312\pythonw.exe" report.py >> run.log 2>&1然后按 Win + R 输入 taskschd.msc 打开任务计划程序,右侧点「创建基本任务」,填名称 → 选触发器(每天 / 每周)→ 操作选「启动程序」→ 程序或脚本填 run.bat 的完整路径 → 完成。也可以用一行命令搞定:
# 每天 09:00 执行
schtasks /create /tn "DailyReport" /tr "D:\scripts\run.bat" /sc daily /st 09:00
# 查看 / 立即测试 / 删除
schtasks /query /tn "DailyReport"
schtasks /run /tn "DailyReport"
schtasks /delete /tn "DailyReport" /fmacOS / Linux:cron
crontab -e
# 加一行:每周一 09:00 跑,日志追加到 run.log
# 分 时 日 月 周
0 9 * * 1 cd /Users/me/scripts && /usr/bin/python3 report.py >> run.log 2>&1
# 常用写法:
# 0 * * * * 每小时整点
# 30 8 * * * 每天 08:30
# 0 9 1 * * 每月 1 号 09:00
crontab -l # 查看已有任务定时任务不跑?九成是这三个原因
一、用了相对路径而定时任务的工作目录不是脚本目录(用 cd 或全改绝对路径);二、Python 解释器路径写错,定时环境的 PATH 和你终端里的不一样(写解释器完整路径);三、脚本报错了但你看不见(一定要把输出重定向到日志文件)。
打包成 exe 发给同事
如果同事也要用,但他电脑上没有 Python,可以用 PyInstaller 打包成一个独立的 exe。注意打出来的文件通常有几十 MB,而且可能被杀毒软件误报,内部使用加个信任即可。
uv tool install pyinstaller
# --onefile 打成单个 exe;--noconsole 运行时不弹黑窗(无界面脚本才加)
pyinstaller --onefile --noconsole report.py
# 产物在 dist/report.exe新手最常踩的 6 个坑
- 1中文乱码:读写 CSV 时用 encoding="utf-8-sig",否则用 Excel 打开是一堆问号。日志文件同理。
- 2路径反斜杠:Windows 路径直接粘进代码会出错,让 AI 用 pathlib 或者在字符串前加 r,写成 r"D:\报表\8月"。
- 3Excel 文件被占用:脚本运行时那个 xlsx 必须是关闭状态,否则报权限错误。跑之前先关掉 Excel。
- 4AI 用了过时 API:报错信息里出现「没有该属性 / 方法」时,把完整报错和你装的库版本一起贴回去,让它按当前版本改。
- 5只在一个文件上测过就全量跑:一定要先拿三五个有代表性的文件试,包括那个格式最奇怪的。
- 6没有日志:脚本静默失败是最难受的。要求 AI 在每个关键步骤打印进度,并把处理成功、跳过、失败的文件数在结尾汇总一次。
自动化脚本往往是非程序员用 AI 尝到的第一口甜头:需求小、见效快、省下的时间当场可见。真正拉开差距的是下一步——把零散的脚本变成稳定运行、出错会告警、别人也能用的小工具。IMAI 的实战课程从这类真实需求出发,带你一路走到能交付的产品,感兴趣可以来看看。
想系统学会用 AI 编程,从入门到做出真实产品?
查看系统课程