Claude Code 最擅长的事情之一就是写 Python 脚本。你描述需求,它帮你搞定所有细节——错误处理、日志、命令行参数、进度条。本文整理 8 个最实用的自动化场景,每个给出完整 Prompt 模板。
通用 Prompt 模板
每次让 Claude 写脚本,加上这几点效果最好:
写一个 Python 脚本,功能是 [描述需求]。
要求:
- 用 argparse 接收命令行参数
- 用 logging 记录日志(INFO 级别)
- 有完善的错误处理(try/except)
- 关键步骤有进度提示
- 运行示例:python script.py [参数示例]
场景 1:批量重命名文件
写一个 Python 脚本批量重命名文件:
- 扫描指定目录下所有 .jpg 文件
- 按创建时间排序,命名为 photo_001.jpg, photo_002.jpg...
- 支持 --dry-run 参数预览不实际执行
- 支持 --prefix 自定义前缀
- 输出重命名日志
python
# Claude 生成的核心代码结构
import argparse, logging, os
from pathlib import Path
from datetime import datetime
def rename_files(directory, prefix, dry_run):
files = sorted(Path(directory).glob('*.jpg'), key=lambda f: f.stat().st_ctime)
for i, f in enumerate(files, 1):
new_name = f.parent / f'{prefix}_{i:03d}{f.suffix}'
logging.info(f'{f.name} -> {new_name.name}')
if not dry_run:
f.rename(new_name)场景 2:Excel 数据处理
写一个 Python 脚本处理 Excel 文件:
- 读取 data.xlsx,合并 Sheet1 和 Sheet2
- 按日期列排序,删除重复行(根据订单ID去重)
- 计算每月销售额汇总,新增 monthly_total 列
- 输出到 output.xlsx,格式化表头(加粗+蓝色背景)
- 依赖:openpyxl 或 pandas
python
import pandas as pd
def process_excel(input_file, output_file):
df1 = pd.read_excel(input_file, sheet_name='Sheet1')
df2 = pd.read_excel(input_file, sheet_name='Sheet2')
df = pd.concat([df1, df2]).drop_duplicates(subset='order_id')
df = df.sort_values('date')
df['month'] = pd.to_datetime(df['date']).dt.to_period('M')
df.to_excel(output_file, index=False)场景 3:调用 REST API 并保存结果
写一个 Python 脚本定期拉取 GitHub API 数据:
- 获取指定 repo 的所有 Issues(分页处理)
- 过滤 label='bug' 且 state='open' 的 issues
- 保存到 bugs.json 和 bugs.csv 两种格式
- 支持 --token 参数传 GitHub Token
- 请求失败时重试 3 次,间隔 5 秒
python
import requests, time, json
def fetch_with_retry(url, headers, max_retries=3):
for attempt in range(max_retries):
try:
r = requests.get(url, headers=headers, timeout=10)
r.raise_for_status()
return r.json()
except requests.RequestException as e:
if attempt == max_retries - 1:
raise
time.sleep(5)场景 4:定时任务(带状态持久化)
写一个 Python 脚本实现定时检查任务:
- 每隔 10 分钟检查一个 URL 是否可访问
- 记录最近 24 小时的可用率
- 失败时通过 requests 发送 webhook 通知(钉钉/飞书格式)
- 状态持久化到 state.json(重启后继续记录)
- 后台运行不阻塞终端
场景 5:数据清洗脚本
写一个 Python 数据清洗脚本:
- 读取 CSV 文件(可能有各种编码问题,自动检测)
- 清理规则:去首尾空格、统一日期格式为 YYYY-MM-DD、
手机号标准化为 +86 格式、去除明显异常值(如负数价格)
- 输出清洗报告:共处理多少行、修改了多少行、删除了多少行
- 生成 cleaned.csv 和 cleaning_report.txt
场景 6:发送通知消息
写一个 Python 脚本发送飞书通知:
- 支持发送普通文本、Markdown 富文本、卡片消息
- 从环境变量读取 FEISHU_WEBHOOK
- 有简单的消息模板(系统告警模板、日报模板)
- 可以作为模块被其他脚本 import 使用
场景 7:Web 内容抓取
写一个 Python 脚本抓取网页内容:
- 抓取指定 URL 列表(从 urls.txt 读取)
- 提取:标题、正文文字、所有图片 URL
- 保存为 Markdown 格式
- 遵守 robots.txt,请求间隔 2 秒
- 依赖:requests + BeautifulSoup4
场景 8:PDF 批量处理
写一个 Python 脚本批量处理 PDF:
- 扫描目录下所有 PDF
- 提取每个 PDF 的文字内容(第 1-3 页)
- 调用 Claude API 生成摘要(3 句话以内)
- 输出 summary.csv(文件名、页数、摘要)
- 依赖:pdfplumber, anthropic
python
import pdfplumber, anthropic
def summarize_pdf(pdf_path, client):
with pdfplumber.open(pdf_path) as pdf:
text = ''.join(p.extract_text() or '' for p in pdf.pages[:3])
response = client.messages.create(
model="claude-haiku-3-5",
max_tokens=200,
messages=[{"role": "user", "content": f"Summarize in 3 sentences: {text[:2000]}"}]
)
return response.content[0].text让 Claude 写完后必做的 3 件事
1. 让 Claude 加错误处理:大多数情况下第一版不够健壮,追问: "加上完整的错误处理,每种可能的异常都要捕获并给出有用的错误信息"
2. 让 Claude 写测试: "为这个脚本写 pytest 测试,mock 掉网络请求和文件系统操作"
3. 让 Claude 生成 README: "为这个脚本写一个 README.md,包含安装、配置、使用示例"
来源:Anthropic 官方文档 + Claude Code 实战