本文所有脚本均可直接复用,GitHub 仓库已开源
前言
作为一名程序员,我深知重复性工作是时间杀手。
每天花 1 小时整理报表、下载数据、处理文件......一周就是 5 小时,一个月就是 20 小时。
这 20 小时,本可以用来学习新技术、做副业、或者单纯休息。
过去半年,我用 Python 自动化了工作中的 10 个重复场景,每周节省约 8 小时。今天把代码全部开源,你可以直接拿去用。
场景一:自动整理日报/周报
痛点: 每天要从多个系统导出数据,手动合并成 Excel 报表
自动化方案:
python
import pandas as pd
from datetime import datetime
# 读取多个数据源
df1 = pd.read_csv('system_a_export.csv')
df2 = pd.read_excel('system_b_export.xlsx')
# 合并数据
merged = pd.merge(df1, df2, on='order_id', how='left')
# 添加统计
summary = merged.groupby('category')['amount'].sum().reset_index()
# 导出报表
today = datetime.now().strftime('%Y%m%d')
summary.to_excel(f'daily_report_{today}.xlsx', index=False)
print(f'日报已生成:daily_report_{today}.xlsx')
节省时间: 每天 15 分钟 → 每周 1.25 小时
场景二:批量处理图片/文件
痛点: 运营同事经常需要批量压缩图片、重命名文件
自动化方案:
python
from PIL import Image
import os
def batch_compress_images(folder_path, quality=80):
"""批量压缩图片"""
for filename in os.listdir(folder_path):
if filename.endswith(('.jpg', '.png')):
img = Image.open(os.path.join(folder_path, filename))
img.save(
os.path.join(folder_path, f'compressed_{filename}'),
quality=quality,
optimize=True
)
print(f'压缩完成:{folder_path}')
# 使用
batch_compress_images('./product_images')
节省时间: 每次 30 分钟 → 每周 1 小时
场景三:自动监控价格/库存
痛点: 电商运营需要定时检查竞品价格和库存
自动化方案:
python
import requests
from bs4 import BeautifulSoup
import schedule
import time
def check_price(url):
"""监控商品价格"""
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
price = soup.find('span', {'class': 'price'}).text
return price
def monitor():
products = [
('竞品 A', 'https://example.com/product1'),
('竞品 B', 'https://example.com/product2'),
]
for name, url in products:
price = check_price(url)
print(f'{name}: {price}')
# 每小时检查一次
schedule.every().hour.do(monitor)
while True:
schedule.run_pending()
time.sleep(60)
节省时间: 每天 20 分钟 → 每周 1.5 小时
场景四:自动发送邮件/通知
痛点: 定期要给客户/团队发送进度邮件
自动化方案:
python
import smtplib
from email.mime.text import MIMEText
def send_email(subject, body, to_list):
"""发送邮件"""
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = 'your_email@example.com'
msg['To'] = ', '.join(to_list)
with smtplib.SMTP('smtp.example.com', 587) as server:
server.starttls()
server.login('your_email', 'your_password')
server.send_message(msg)
# 使用
send_email(
subject='项目进度更新',
body='本周完成:xxx\n下周计划:xxx',
to_list=['team@example.com']
)
节省时间: 每次 15 分钟 → 每周 0.5 小时
场景五:数据清洗/格式转换
痛点: 客户给的数据格式混乱,需要手动整理
自动化方案:
python
import pandas as pd
def clean_data(file_path):
"""数据清洗"""
df = pd.read_csv(file_path)
# 删除空行
df = df.dropna()
# 删除重复
df = df.drop_duplicates()
# 格式标准化
df['phone'] = df['phone'].str.replace('-', '')
df['date'] = pd.to_datetime(df['date'])
# 导出
df.to_csv('cleaned_data.csv', index=False)
return df
# 使用
clean_data('messy_data.csv')
节省时间: 每次 30 分钟 → 每周 1 小时
场景六:自动截图/录屏
痛点: 需要定期截图记录页面状态
自动化方案:
python
from selenium import webdriver
from datetime import datetime
def capture_screenshot(url, save_path):
"""自动截图"""
driver = webdriver.Chrome()
driver.get(url)
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
driver.save_screenshot(f'{save_path}_{timestamp}.png')
driver.quit()
# 使用
capture_screenshot('https://example.com/dashboard', './screenshots/daily')
节省时间: 每天 10 分钟 → 每周 0.75 小时
场景七:批量注册/填表
痛点: 需要在多个平台重复填写相同信息
自动化方案:
python
from selenium import webdriver
from selenium.webdriver.common.by import By
def auto_fill_form(url, data):
"""自动填表"""
driver = webdriver.Chrome()
driver.get(url)
driver.find_element(By.NAME, 'username').send_keys(data['username'])
driver.find_element(By.NAME, 'email').send_keys(data['email'])
driver.find_element(By.NAME, 'phone').send_keys(data['phone'])
driver.find_element(By.XPATH, '//button[@type="submit"]').click()
driver.quit()
# 使用
data = {
'username': 'your_name',
'email': 'your@email.com',
'phone': '13800138000'
}
auto_fill_form('https://example.com/register', data)
节省时间: 每次 20 分钟 → 每周 0.5 小时
场景八:文件自动备份
痛点: 经常忘记备份重要文件
自动化方案:
python
import shutil
from datetime import datetime
def backup_folder(source, dest):
"""自动备份文件夹"""
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
backup_name = f'backup_{timestamp}'
shutil.copytree(source, f'{dest}/{backup_name}')
print(f'备份完成:{backup_name}')
# 使用
backup_folder('./important_files', './backups')
节省时间: 每周 15 分钟 → 每周 0.25 小时(主要是心理负担减轻)
场景九:自动抓取竞品信息
痛点: 需要手动收集竞品动态
自动化方案:
python
import requests
import json
def fetch_competitor_info(urls):
"""抓取竞品信息"""
results = []
for url in urls:
response = requests.get(url)
# 解析页面内容
# ... 添加具体解析逻辑
results.append({
'url': url,
'title': '竞品标题',
'price': '价格',
'timestamp': datetime.now().isoformat()
})
# 保存到文件
with open('competitor_data.json', 'w') as f:
json.dump(results, f, ensure_ascii=False, indent=2)
return results
# 使用
urls = [
'https://competitor1.com/product',
'https://competitor2.com/product'
]
fetch_competitor_info(urls)
节省时间: 每天 30 分钟 → 每周 2 小时
场景十:定时任务调度
痛点: 需要记得在特定时间执行任务
自动化方案:
python
import schedule
import time
def job1():
print('执行任务 1:发送日报')
# 发送日报代码
def job2():
print('执行任务 2:备份数据')
# 备份代码
# 设置定时
schedule.every().day.at("09:00").do(job1)
schedule.every().friday.at("18:00").do(job2)
# 持续运行
while True:
schedule.run_pending()
time.sleep(60)
节省时间: 避免忘记任务导致的返工 → 每周 1 小时
总结
| 场景 | 原耗时/周 | 自动化后 | 节省时间 |
|---|---|---|---|
| 日报周报 | 1.25h | 5 分钟 | 1h |
| 图片处理 | 1h | 5 分钟 | 0.75h |
| 价格监控 | 1.5h | 自动 | 1.5h |
| 邮件通知 | 0.5h | 自动 | 0.5h |
| 数据清洗 | 1h | 10 分钟 | 0.75h |
| 自动截图 | 0.75h | 自动 | 0.75h |
| 批量填表 | 0.5h | 自动 | 0.5h |
| 文件备份 | 0.25h | 自动 | 0.25h |
| 竞品抓取 | 2h | 自动 | 2h |
| 任务调度 | 1h | 自动 | 1h |
| 合计 | 9.75h | 约 1h | 8.75h |
觉得有用?欢迎点赞、收藏、转发!
有任何问题,欢迎在评论区留言,我会逐一回复。