用 Claude API 自动写周报:输入关键词,10 秒输出完整周报(2026)
每周五下午,你是不是都在对着空白文档发呆,想不起来这周到底干了啥?
这篇教程教你用 Python 调用 Claude API,做一个周报自动生成工具:把本周干的事情丢进去,10 秒钟输出一篇格式规范、语言专业的完整周报。国内直连,代码直接能跑。
📌 本文代码已在本地实测跑通,可直接复制使用。
效果预览
输入这串关键词:需求评审 接口联调 修复登录bug 代码review 部门周会
10 秒后自动输出:
【本周工作总结】
一、需求与规划
二、开发与实现
三、协作与支持
【下周工作计划】
[ 📷 配图:claude api 自动生成周报 python 运行截图 ]

目录
- 1. 环境准备2. 第一步:最简版周报生成器3. 第二步:三种风格随意切换4. 第三步:交互式命令行工具5. 第四步:一键保存到桌面6. 第五步:团队批量生成7. 完整代码(直接复制)8. 常见问题 FAQ
环境准备
pip install anthropic
还需要一个 Claude API Key。国内开发者推荐直接用 ClaudeAPI.com(https://claudeapi.com),无需代理,支付宝充值,注册即送体验额度,5 分钟内跑通。
第一步:最简版周报生成器
新建 weekly_report.py,粘贴以下代码:
import os
import anthropic
os.environ[“HTTP_PROXY”] = “”
os.environ[“HTTPS_PROXY”] = “”
os.environ[“http_proxy”] = “”
os.environ[“https_proxy”] = “”
client = anthropic.Anthropic(
api\_key="your\-api\-key\-here", \# 替换成你的 Key
base\_url="https://api\.claudeapi\.com", \# 国内直连节点,无需代理
timeout=60\.0,
)
keywords = “需求评审 接口联调 修复登录bug 代码review 部门周会”
response = client.messages.create(
model="claude\-haiku\-4\-5\-20251001",
max\_tokens=1024,
system="""你是专业的职场写作助手。根据用户输入的工作关键词,
生成一份格式规范的周报。要求:
- 用一、二、三分类整理工作内容
- 语言专业简洁,符合职场风格
- 每条工作内容扩展成完整描述
- 结尾加上下周工作计划(根据本周内容合理推断)
- 不要加任何多余的解释"“”,
messages=\[\{"role": "user", "content": f"本周工作关键词:\{keywords\}"\}\],
)
print(response.content[0].text)
运行:
python weekly_report.py
[ 📷 配图:python 调用 claude api 生成周报 终端截图 ]
第二步:三种风格随意切换
不同公司周报要求不一样,加一个 style 参数,三种风格一键切换:
STYLE_PROMPTS = {
"standard": "生成格式规范的职场周报,用一、二、三分类,语言专业,每条内容扩展成完整描述,结尾附下周计划。",
"bullet": "生成简洁的 bullet point 周报,每条用「·」开头,一句话说清,结尾附下周 3 条计划。",
"kpi": "生成 KPI 导向周报,格式:【工作项】完成情况 | 数据 | 价值。",
}
def generate_report(keywords: str, style: str = “standard”) -> str:
response = client\.messages\.create\(
model="claude\-haiku\-4\-5\-20251001",
max\_tokens=1024,
system=f"你是专业职场写作助手。\{STYLE\_PROMPTS\.get\(style, STYLE\_PROMPTS\['standard'\]\)\}不要加多余解释。",
messages=\[\{"role": "user", "content": f"本周工作关键词:\{keywords\}"\}\],
\)
return response\.content\[0\]\.text
三种风格对比
风格参数____适合场景____输出特点
|standard|传统企业、政府机关|分类清晰,语言正式,有层级|
|bullet|互联网、创业公司|一句话一条,快速扫读|
|kpi|销售、运营、结果导向岗位|量化数据,突出价值|******

[ 📷 配图:claude api 周报三种风格对比 标准 bullet KPI 效果展示 ]
Bullet 风格输出示例
· 完成需求评审,确认功能范围
· 前后端接口联调完毕
· 修复登录 Bug,已上线验证
· 完成代码 Review,提出 2 处改进建议
· 参加部门周会,同步项目进度
下周计划:
· 推进需求开发 · 接口监控跟进 · 启动新功能排期
KPI 风格输出示例
【需求评审】已完成 | 覆盖 5 个核心功能点 | 明确开发优先级,减少后期返工
【接口联调】已完成 | 联调接口 12 个 | 保障前后端数据一致性
【Bug 修复】已完成 | 修复登录异常 1 个 | 提升用户登录成功率
第三步:交互式命令行工具
每次改代码太麻烦,做成交互式,运行后直接选风格、输关键词:
def generate_report(keywords: str, style: str = “standard”) -> str:
print\("=" \* 50\)
print\(" AI 周报生成器 · Powered by Claude API"\)
print\("=" \* 50\)
print\("\\n选择周报风格:"\)
print\(" 1\. 标准职场风格(默认)"\)
print\(" 2\. 简洁 Bullet 风格"\)
print\(" 3\. KPI 数据风格"\)
choice = input\("\\n输入数字(直接回车默认1):"\)\.strip\(\) or "1"
style = \{"1": "standard", "2": "bullet", "3": "kpi"\}\.get\(choice, "standard"\)
print\("\\n输入本周工作关键词(用空格或逗号分隔):"\)
print\("示例:需求评审 接口联调 修复bug 代码review 周会"\)
keywords = input\("> "\)\.strip\(\)
if not keywords:
print\("关键词不能为空"\); return
print\("\\n⏳ 正在生成周报\.\.\.\\n"\)
result = generate\_report\(keywords, style\)
print\("=" \* 50\)
print\(result\)
print\("=" \* 50\)
return result
[ 📷 配图:ai 周报生成器 命令行交互界面 选择风格输入关键词 ]
第四步:一键保存到桌面
生成完自动存成 .txt,文件名带日期,直接复制粘贴到钉钉/飞书/邮件:
import datetime
def save_report(content: str) -> str:
today = datetime\.date\.today\(\)
monday = today \- datetime\.timedelta\(days=today\.weekday\(\)\)
friday = monday \+ datetime\.timedelta\(days=4\)
filename = f"周报\_\{monday\.strftime\('%m%d'\)\}\-\{friday\.strftime\('%m%d'\)\}\.txt"
filepath = os\.path\.join\(os\.path\.expanduser\('~'\), 'Desktop', filename\)
with open\(filepath, "w", encoding="utf\-8"\) as f:
f\.write\(f"周报(\{monday\} 至 \{friday\})\\n\{'=' \* 40\}\\n\\n\{content\}"\)
return filepath
运行后桌面出现 周报_0401-0405.txt,打开直接用。
第五步:团队批量生成
团队 Leader 用,一次给多人批量生成周报模板:
team_keywords = {
"张三(前端)": "登录页重构 移动端适配 性能优化 代码review",
"李四(后端)": "用户接口开发 数据库优化 接口文档更新 bug修复",
"王五(测试)": "功能测试 回归测试 测试报告 缺陷跟踪",
}
for name, keywords in team_keywords.items():
print\(f"\\n\{'=' \* 40\}"\)
print\(f"【\{name\}】"\)
print\(generate\_report\(keywords, style="bullet"\)\)
输出(节选)
【张三(前端)】
· 完成登录页重构,优化交互体验
· 完成移动端适配,兼容主流机型
· 实施性能优化,页面加载提速 30%
· 参与代码 Review,提出 2 处改进建议
下周计划:
· 推进下一阶段页面开发
· 跟进性能指标监控
· 持续参与团队 Review
[ 📷 配图:claude api 团队批量生成周报 python 多人输出 ]

完整代码(直接复制)
把上面所有功能整合,保存为 weekly_report.py 直接运行: import os import datetime import anthropic os.environ[“HTTP_PROXY”] = “” os.environ[“HTTPS_PROXY”] = “” os.environ[“ALL_PROXY”] = “” os.environ[“http_proxy”] = “” os.environ[“https_proxy”] = “” os.environ[“all_proxy”] = “” client = anthropic.Anthropic( api_key=“your-api-key-here”, base_url=“https://api.claudeapi.com”, timeout=60.0, ) STYLE_PROMPTS = { “standard”: “生成格式规范的职场周报,用一、二、三分类,语言专业,每条内容扩展成完整描述,结尾附下周计划。”, “bullet”: “生成简洁的 bullet point 周报,每条用「·」开头,一句话说清,结尾附下周 3 条计划。”, “kpi”: “生成 KPI 导向周报,格式:【工作项】完成情况 | 数据 | 价值。”, } def generate_report(keywords: str, style: str = “standard”) -> str: response = client.messages.create( model=“claude-haiku-4-5-20251001”, max_tokens=1024, system=f"你是专业职场写作助手。{STYLE_PROMPTS.get(style, STYLE_PROMPTS[‘standard’])}不要加多余解释。“, messages=[{“role”: “user”, “content”: f"本周工作关键词:{keywords}”}], ) return response.content[0].text def save_report(content: str) -> str: today = datetime.date.today() monday = today - datetime.timedelta(days=today.weekday()) friday = monday + datetime.timedelta(days=4) filename = f"周报_{monday.strftime(‘%m%d’)}-{friday.strftime(‘%m%d’)}.txt" filepath = os.path.join(os.path.expanduser(‘~’), ‘Desktop’, filename) with open(filepath, “w”, encoding=“utf-8”) as f: f.write(f"周报({monday} 至 {friday})\n{‘=’ * 40}\n\n{content}“) return filepath def interactive_report(): print(”=" * 50) print(" AI 周报生成器 · Powered by Claude API") print(“=” * 50) print(“\n选择周报风格:”) print(" 1. 标准职场风格(默认)“) print(” 2. 简洁 Bullet 风格") print(" 3. KPI 数据风格") choice = input(“\n输入数字(直接回车默认1):”).strip() or “1” style = {“1”: “standard”, “2”: “bullet”, “3”: “kpi”}.get(choice, “standard”) print(“\n输入本周工作关键词(用空格或逗号分隔):”) keywords = input(“> “).strip() if not keywords: print(“关键词不能为空”); return print(”\n⏳ 正在生成周报…\n”) result = generate_report(keywords, style) print(“=” * 50) print(result) print(“=” * 50) save = input(“\n是否保存到桌面?(y/n):”).strip().lower() if save == “y”: path = save_report(result) print(f"✅ 已保存:{path}") if name == “main”: interactive_report() 常见问题 FAQ
Q:关键词要写多详细?
越具体越好。「修复登录bug」比「修复bug」生成质量高很多。关键词里有具体功能名、模块名、动作词,输出就越准确。
Q:生成的周报可以直接发吗?
建议过一遍。涉及具体数字的地方(完成了几个需求、提升了多少性能)AI 不知道实际数据,需要手动补充。
Q:能生成日报、月报吗?
把 system prompt 里的「周报」改成「日报」或「月报」,其余代码完全不动。
Q:支持输出英文周报吗?
在 system prompt 末尾加一句「全程用英文输出」即可,其余不变。
Q:国内调用超时怎么处理?
换 base_url 为国内中转节点即可,见下方说明。
写在最后
一个自动写周报的工具,核心代码不超过 30 行,每周五省下半小时发呆时间。
国内开发者跑这套代码,唯一需要注意的是网络问题——官方 api.anthropic.com 在国内连接不稳定,代码写得再好也扛不住底层断连。
为什么推荐 ClaudeAPI.com
ClaudeAPI.com 是专为国内开发者设计的 Claude API 中转平台:
特性说明
国内直连————多节点直连,无需代理,平均延迟 <200ms
🔌 双格式兼容**��**Anthropic 原生 SDK + OpenAI 兼容格式,零迁移成本
🤖 全系列模型**→**Haiku / Sonnet / Opus 全部支持,随时切换
💳 人民币充值**→**支付宝/微信直接付,无需境外信用卡,可开发票
📈 稳定可靠**→**99.8% 可用率,10,000+ 开发者在用
🔒 数据安全**→**不落盘,Key 独立隔离,TLS 全程加密
接入只改一行代码:
client = anthropic.Anthropic(
api\_key="your\-claudeapi\-key",
base\_url="https://api\.claudeapi\.com", \# ← 只改这里,其余代码一行不动
)
👉 注册地址:claudeapi.com,注册即送5元体验额度,3分钟跑通第一个请求。
发布于 2026-04 · 预计阅读 8 分钟 · Claude API 技术教程



