前置要求

pip install requests beautifulsoup4 openpyxl

1. 批量图片下载器

目标:根据 URL 列表批量下载图片

import requests
import os
from urllib.parse import urlparse

def download_images(urls, folder='images'):
    os.makedirs(folder, exist_ok=True)
    
    for url in urls:
        try:
            response = requests.get(url, timeout=10)
            filename = os.path.basename(urlparse(url).path)
            filepath = os.path.join(folder, filename)
            
            with open(filepath, 'wb') as f:
                f.write(response.content)
            print(f"下载成功: {filename}")
        except Exception as e:
            print(f"下载失败 {url}: {e}")

urls = [
    "https://example.com/image1.jpg",
    "https://example.com/image2.jpg",
]
# download_images(urls)

知识点requests 下载、os.makedirs、URL 解析


2. Excel 报表合并工具

目标:合并多个 Excel 文件的数据

import pandas as pd
import glob

def merge_excel_files(pattern, output_file='merged.xlsx'):
    files = glob.glob(pattern)
    all_data = []
    
    for file in files:
        df = pd.read_excel(file)
        df['来源文件'] = os.path.basename(file)
        all_data.append(df)
    
    merged = pd.concat(all_data, ignore_index=True)
    merged.to_excel(output_file, index=False)
    print(f"已合并 {len(files)} 个文件,输出: {output_file}")
    return merged

# merge_excel_files('sales_*.xlsx', 'total_sales.xlsx')

知识点pandas 读取 Excel、glob 文件匹配、pd.concat


3. 邮件自动发送脚本

目标:批量发送定制化邮件

import smtplib
from email.mime.text import MIMEText
from email.header import Header

def send_email(sender, password, receiver, subject, content):
    msg = MIMEText(content, 'plain', 'utf-8')
    msg['From'] = sender
    msg['To'] = receiver
    msg['Subject'] = Header(subject, 'utf-8')
    
    with smtplib.SMTP_SSL('smtp.qq.com', 465) as server:
        server.login(sender, password)
        server.sendmail(sender, [receiver], msg.as_string())
    print(f"邮件已发送至 {receiver}")

def batch_send(sender, password, recipients, template):
    for name, email in recipients.items():
        content = template.format(name=name)
        send_email(sender, password, email, "活动通知", content)

# recipients = {"张三": "zhangsan@example.com"}
# template = "尊敬的 {name},您好!请查收本月活动安排。"
# batch_send("your_email@qq.com", "your_password", recipients, template)

知识点smtplib 邮件发送、MIMEText 邮件格式、批量处理