AI 辅助 Python 编程实战:5 个提升效率的真实案例
通过五个真实案例展示了如何利用 AI 工具(如 GitHub Copilot、ChatGPT)提升 Python 编程效率。涵盖动态网页爬虫抓取、数据分析报告生成、批量合同自动化处理、机器学习模型构建以及 Flask 后端 API 搭建。内容包含详细代码示例与对比分析,旨在帮助开发者从手动编码转向 AI 辅助工作流,实现效率倍增。

通过五个真实案例展示了如何利用 AI 工具(如 GitHub Copilot、ChatGPT)提升 Python 编程效率。涵盖动态网页爬虫抓取、数据分析报告生成、批量合同自动化处理、机器学习模型构建以及 Flask 后端 API 搭建。内容包含详细代码示例与对比分析,旨在帮助开发者从手动编码转向 AI 辅助工作流,实现效率倍增。

在 AI 编程时代,程序员不再是单纯的代码搬运工,而是指挥 AI 完成工作的工程师。Python 作为 AI 时代最友好的语言之一,正成为这场革命的主战场。本文将拆解 5 个真实案例,展示如何利用 AI 工具大幅提升开发效率。
数据分析师需要从使用 JavaScript 动态加载的电商网站抓取商品信息。传统 requests 直接抓取返回空白 HTML,手动翻页耗时且易被封 IP。
使用 Selenium 配合 AI 生成的代码,自动处理反爬机制、等待加载及翻页逻辑。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
import time
import csv
def scrape_products(url):
# 设置无头模式,避免被发现是自动化程序
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--disable-blink-features=AutomationControlled")
chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36")
driver = webdriver.Chrome(options=chrome_options)
driver.get(url)
# 移除 webdriver 痕迹
driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => false});")
products = []
try:
while True:
# 等待商品列表加载
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CLASS_NAME, "product-item"))
)
# 提取当前页商品
items = driver.find_elements(By.CLASS_NAME, "product-item")
for item in items:
try:
title = item.find_element(By.CLASS_NAME, "title").text
price = item.find_element(By.CLASS_NAME, "price").text
rating = item.find_element(By.CLASS_NAME, "rating").text
products.append({"title": title, "price": price, "rating": rating})
except Exception as e:
print(f"解析单个商品失败:{e}")
continue
# 尝试点击下一页
try:
next_btn = WebDriverWait(driver, 5).until(
EC.element_to_be_clickable((By.XPATH, "//a[@class='next-page']"))
)
driver.execute_script("arguments[0].click();", next_btn)
time.sleep(2)
except:
print("已到最后一页")
break
finally:
driver.quit()
return products
if __name__ == "__main__":
url = "https://example-ecommerce.com/products"
data = scrape_products(url)
# 保存为 CSV
with open('products.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.DictWriter(f, fieldnames=["title", "price", "rating"])
writer.writeheader()
writer.writerows(data)
print(f"成功抓取 {len(data)} 条商品数据!")
| 方法 | 耗时 | 代码行数 | 成功率 |
|---|---|---|---|
| 手写 | 4 小时 | 80+ | 60% |
| AI 生成 | 3 分钟 | 70 | 95% |
提示:AI 生成的代码不一定 100% 完美,但能提供高质量起点。开发者只需微调选择器即可。
老板要求分析销售数据并给出发现。传统做法需手动导入 pandas、编写清洗与分析代码。
在 Jupyter 中使用 AI 助手,输入自然语言需求,自动生成数据分析与可视化代码。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats
import numpy as np
# 读取数据
df = pd.read_csv('sales_data.csv')
# 基本信息
print("数据概览:")
print(df.head())
print(f"\n数据形状:{df.shape}")
print(f"缺失值:\n{df.isnull().sum()}")
# 转换日期
df['order_date'] = pd.to_datetime(df['order_date'])
df['month'] = df['order_date'].dt.to_period('M')
# 销售额最高的类别
top_category = df.groupby('category')['sales'].sum().sort_values(ascending=False).head(1)
print(f"\n销售额最高的类别:{top_category.index[0]}, 销售额:{top_category.values[0]:,.2f}")
# 按月销售额趋势
monthly_sales = df.groupby('month')['sales'].sum()
plt.figure(figsize=(10, 6))
monthly_sales.plot(kind='line', marker='o')
plt.title('Monthly Sales Trend')
plt.ylabel('Sales')
plt.xticks(rotation=)
plt.grid()
plt.tight_layout()
plt.show()
z_scores = np.(stats.zscore(df[]))
outliers = df[z_scores > ]
()
(outliers[[, ]])
sns.heatmap(df.corr(numeric_only=), annot=, cmap=)
plt.title()
plt.show()
从写代码到提问题:描述需求 -> AI 生成代码 -> 运行 -> 拿结论。
法务部需要批量生成 1000 份合同,涉及 Word 模板填充、PDF 转换、加水印加密及邮件发送。
利用 AI 生成集成脚本,自动处理文档操作与邮件发送流程。
import pandas as pd
from docxtpl import DocxTemplate
from docx2pdf import convert
import os
from PyPDF2 import PdfWriter, PdfReader
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
def create_watermark(text="CONFIDENTIAL"):
c = canvas.Canvas("watermark.pdf", pagesize=letter)
c.setFont("Helvetica", 50)
c.setFillColorRGB(0.5, 0.5, 0.5, alpha=0.3)
c.rotate(45)
c.drawCentredString(300, 100, text)
c.save()
def add_watermark_and_encrypt(input_pdf, output_pdf, password):
reader = PdfReader(input_pdf)
writer = PdfWriter()
watermark = PdfReader("watermark.pdf")
for page in reader.pages:
page.merge_page(watermark.pages[0])
writer.add_page(page)
writer.encrypt(password)
with open(output_pdf, "wb") as f:
writer.write(f)
def send_email():
msg = MIMEMultipart()
msg[] =
msg[] = to_email
msg[] =
(pdf_path, ) f:
attach = MIMEBase(, )
attach.set_payload(f.read())
encoders.encode_base64(attach)
attach.add_header(, )
msg.attach(attach)
server = smtplib.SMTP(, )
server.starttls()
server.login(msg[], )
server.send_message(msg)
server.quit()
df = pd.read_excel()
template = DocxTemplate()
create_watermark()
_, row df.iterrows():
context = {
: row[],
: ,
: row[].strftime()
}
template.render(context)
docx_path =
pdf_path =
encrypted_pdf =
template.save(docx_path)
convert(docx_path, pdf_path)
add_watermark_and_encrypt(pdf_path, encrypted_pdf, row[])
send_email(row[], encrypted_pdf, row[])
()
| 任务 | 手动耗时 | AI 辅助耗时 |
|---|---|---|
| 填写合同 | 20 小时 | 0 分钟 |
| 转 PDF | 5 小时 | 2 分钟 |
| 加密 | 8 小时 | 1 分钟 |
| 发邮件 | 10 小时 | 3 分钟 |
| 总计 | 43 小时 | 6 分钟 |
产品经理要求预测用户流失。传统做法需查阅文档、调参,周期长。
使用 AI 生成基于随机森林的分类模型代码,包含特征工程、训练、评估及保存。
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report, roc_auc_score
import joblib
import matplotlib.pyplot as plt
# 读取数据
df = pd.read_csv('user_behavior.csv')
# 数据预处理
df['last_login'] = pd.to_datetime(df['last_login'])
df['days_since_login'] = (pd.Timestamp.now() - df['last_login']).dt.days
df = pd.get_dummies(df, columns=['plan_type', 'device'])
# 特征与标签
X = df.drop(['user_id', 'churn'], axis=1)
y = df['churn']
# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 训练模型
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
# 预测
y_pred = model.predict(X_test)
y_pred_proba = model.predict_proba(X_test)[:, 1]
# 评估
print(classification_report(y_test, y_pred))
print(f"AUC Score: {roc_auc_score(y_test, y_pred_proba):.3f}")
# 特征重要性
importances = model.feature_importances_
feature_names = X.columns
feat_importance = pd.Series(importances, index=feature_names).sort_values(ascending=False)
plt.figure(figsize=(10, 6))
feat_importance.head().plot(kind=)
plt.title()
plt.ylabel()
plt.xticks(rotation=)
plt.tight_layout()
plt.show()
joblib.dump(model, )
()
前端需要用户注册、登录及获取个人信息的接口。
使用 AI 生成完整的 Flask REST API,包含数据库模型、JWT 认证及错误处理。
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
from flask_jwt_extended import JWTManager, create_access_token, jwt_required, get_jwt_identity
from werkzeug.security import generate_password_hash, check_password_hash
import os
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db'
app.config['JWT_SECRET_KEY'] = 'your-super-secret-jwt-key-change-in-production'
db = SQLAlchemy(app)
jwt = JWTManager(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
password_hash = db.Column(db.String(120), nullable=False)
def set_password(self, password):
self.password_hash = generate_password_hash(password)
def check_password(self, password):
return check_password_hash(self.password_hash, password)
@app.route('/register', methods=['POST'])
def register():
data = request.get_json()
username = data.get('username')
password = data.get('password')
if User.query.filter_by(username=username).first():
return jsonify({"msg": "用户名已存在"}),
user = User(username=username)
user.set_password(password)
db.session.add(user)
db.session.commit()
jsonify({: }),
():
data = request.get_json()
username = data.get()
password = data.get()
user = User.query.filter_by(username=username).first()
user user.check_password(password):
token = create_access_token(identity=username)
jsonify(access_token=token),
jsonify({: }),
():
current_user = get_jwt_identity()
user = User.query.filter_by(username=current_user).first()
jsonify({: user.username, : user.}),
__name__ == :
app.app_context():
db.create_all()
app.run(debug=)
AI 编程的正确姿势:描述清晰、多轮对话、安全审查、持续学习。
| 工具 | 用途 | 链接 |
|---|---|---|
| GitHub Copilot | IDE 内实时代码补全 | https://github.com/features/copilot |
| ChatGPT | 通用代码生成 | https://chat.openai.com |
| Claude | 长文本理解强 | https://claude.ai |
| Cursor | AI 原生代码编辑器 | https://cursor.sh |
| Jupyter AI | Notebook 内 AI 助手 | https://jupyter-ai.readthedocs.io |
AI 不会替代你,它只是让写代码变得更像对话。当你能用自然语言描述需求,AI 就能把它变成可运行的程序。这不仅是效率的飞跃,更是思维方式的革命。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online