一、为什么要用AI自动化脚本?
你每天有多少时间花在重复性工作上?整理Excel、回复邮件、生成报告、批量处理图片……这些工作枯燥但必须做。AI自动化脚本能帮你把这些"体力活"变成一行命令。
本文教你用Python + AI API编写自动化脚本,覆盖文件处理、数据清洗、内容生成、定时任务4大场景,附10个即用型模板。
二、基础框架:AI脚本的通用结构
#!/usr/bin/env python3
"""AI自动化脚本通用框架"""
import openai
import json
import os
from pathlib import Path
# 初始化客户端
client = openai.OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
def ai_process(prompt, data, model="gpt-4o-mini"):
"""通用AI处理函数"""
response = client.chat.completions.create(
model=model,
messages=[
{"role": "system", "content": prompt},
{"role": "user", "content": str(data)}
],
temperature=0.3 # 低温度保证输出稳定
)
return response.choices[0].message.content
def batch_process(items, process_fn, batch_size=10):
"""批量处理,避免API限流"""
results = []
for i in range(0, len(items), batch_size):
batch = items[i:i+batch_size]
for item in batch:
result = process_fn(item)
results.append(result)
print(f"进度: {min(i+batch_size, len(items))}/{len(items)}")
return results
三、10个实战自动化脚本
脚本1:批量文档翻译
"""批量翻译Markdown文件"""
import glob
def translate_file(filepath, target_lang="英文"):
with open(filepath, "r", encoding="utf-8") as f:
content = f.read()
result = ai_process(
f"将以下中文翻译为{target_lang},保持Markdown格式",
content
)
output_path = filepath.replace(".md", f"_{target_lang}.md")
with open(output_path, "w", encoding="utf-8") as f:
f.write(result)
print(f"✅ 翻译完成: {output_path}")
# 批量翻译docs目录下所有md文件
for f in glob.glob("docs/*.md"):
translate_file(f, "英文")
脚本2:Excel数据清洗
"""AI辅助Excel数据清洗"""
import pandas as pd
def clean_with_ai(df, instructions):
# 取前5行作为样本
sample = df.head().to_string()
result = ai_process(
f"""你是一位数据清洗专家。
根据以下数据样本和清洗规则,生成pandas清洗代码。
数据样本:{sample}
清洗规则:{instructions}
只输出Python代码,不要解释。""",
""
)
# 执行AI生成的清洗代码
exec(result)
return df
# 使用
df = pd.read_excel("sales_data.xlsx")
df = clean_with_ai(df, "删除空行,统一日期格式为YYYY-MM-DD,金额保留2位小数")
df.to_excel("sales_cleaned.xlsx", index=False)
脚本3:批量生成产品描述
"""批量生成电商产品描述"""
import csv
def generate_description(product_name, features):
return ai_process(f"""你是一位电商文案专家。
为以下产品生成一段150字的卖点描述。
产品:{product_name}
特点:{features}
要求:口语化,突出卖点,包含使用场景。""", "")
# 从CSV读取产品列表
with open("products.csv", "r") as f:
reader = csv.DictReader(f)
for row in reader:
desc = generate_description(row["name"], row["features"])
print(f"✅ {row['name']}: {desc[:50]}...")
脚本4:自动回复邮件分类
"""AI邮件分类与自动回复建议"""
def classify_email(subject, body):
result = ai_process("""将以下邮件分类为:咨询/投诉/合作/垃圾
并给出建议回复。
输出JSON格式:{"category": "", "reply": "", "urgency": "high/medium/low"}""",
f"主题:{subject}\n内容:{body}")
return json.loads(result)
# 集成到邮件处理流程
emails = fetch_unread_emails() # 自定义函数
for email in emails:
classification = classify_email(email.subject, email.body)
if classification["urgency"] == "high":
send_alert(classification)
save_reply_draft(email.id, classification["reply"])
脚本5:代码自动Review
"""Git提交自动代码审查"""
import subprocess
def review_last_commit():
diff = subprocess.run(
["git", "diff", "HEAD~1"],
capture_output=True, text=True
).stdout
return ai_process("""审查以下git diff,关注:
1. 安全漏洞
2. 性能问题
3. 代码规范
用中文输出,按严重程度排序。""", diff)
# 使用
print(review_last_commit())
脚本6:SEO标题批量优化
"""批量优化文章标题的SEO"""
def optimize_title(title, keywords):
return ai_process(f"""为以下标题生成3个SEO优化版本。
原标题:{title}
目标关键词:{keywords}
要求:包含关键词,吸引点击,不超过30字。
输出格式:每行一个标题。""", "")
titles = ["如何学习Python", "AI工具推荐", "创业经验分享"]
for t in titles:
optimized = optimize_title(t, "AI,效率,2026")
print(f"原标题:{t}\n优化后:\n{optimized}\n")
脚本7:会议纪要自动生成
"""从会议录音转写文本生成结构化纪要"""
def generate_meeting_notes(transcript):
return ai_process("""从以下会议转写文本生成结构化纪要:
1. 会议主题
2. 参会人
3. 讨论要点(3-5条)
4. 决策事项
5. 待办事项(含负责人和截止日期)
用Markdown格式输出。""", transcript)
脚本8:竞品分析自动化
"""自动抓取竞品信息并生成分析报告"""
import requests
from bs4 import BeautifulSoup
def analyze_competitor(url):
resp = requests.get(url)
soup = BeautifulSoup(resp.text, "html.parser")
text = soup.get_text()[:5000] # 取前5000字
return ai_process("""分析以下竞品网页内容,输出:
1. 核心产品/服务
2. 目标用户
3. 定价策略
4. 差异化卖点
5. 可借鉴的点
用JSON格式输出。""", text)
脚本9:定时报告生成
"""每日自动生成数据报告"""
import schedule
import time
def daily_report():
# 1. 拉取数据
data = fetch_daily_metrics() # 自定义
# 2. AI分析
analysis = ai_process("""分析以下业务数据,生成日报:
- 今日关键指标变化
- 异常数据预警
- 明日行动建议
简洁明了,适合管理层阅读。""", str(data))
# 3. 发送
send_to_dingtalk(analysis) # 发送到钉钉
print("📊 日报已发送")
schedule.every().day.at("09:00").do(daily_report)
while True:
schedule.run_pending()
time.sleep(60)
脚本10:批量图片描述生成
"""为图片批量生成alt文本和描述"""
import base64
def describe_image(image_path):
with open(image_path, "rb") as f:
img_base64 = base64.b64encode(f.read()).decode()
response = client.chat.completions.create(
model="gpt-4o",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "为这张图片生成SEO友好的alt文本(50字内)和详细描述(100字内)"},
{"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{img_base64}"}}
]
}]
)
return response.choices[0].message.content
四、脚本部署与定时执行
使用Cron定时执行
# 编辑crontab
crontab -e
# 每天早上9点执行日报脚本
0 9 * * * /usr/bin/python3 /scripts/daily_report.py
# 每小时执行邮件分类
0 * * * * /usr/bin/python3 /scripts/email_classifier.py
# 每周一执行竞品分析
0 10 * * 1 /usr/bin/python3 /scripts/competitor_analysis.py
错误处理与重试
import time
from functools import wraps
def retry(max_attempts=3, delay=5):
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
for attempt in range(max_attempts):
try:
return func(*args, **kwargs)
except Exception as e:
if attempt == max_attempts - 1:
raise
print(f"重试 {attempt+1}/{max_attempts}: {e}")
time.sleep(delay * (attempt + 1))
return wrapper
return decorator
@retry(max_attempts=3, delay=5)
def ai_process(prompt, data):
# ... API调用代码
pass
💡 核心思路:AI自动化脚本的关键不是写复杂的代码,而是识别出你工作中重复的部分,然后用AI+Python把它自动化。从最简单的开始,比如"每天早上自动整理邮件",逐步扩展到更复杂的场景。