我用 Python 自动化了这 10 个工作流程,每周省下 8 小时

本文所有脚本均可直接复用,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

觉得有用?欢迎点赞、收藏、转发!

有任何问题,欢迎在评论区留言,我会逐一回复。

相关推荐
yunyun321231 小时前
用Python监控系统日志并发送警报
jvm·数据库·python
6+h1 小时前
【java IO】BIO、NIO、AIO 全面对比
java·python·nio
梨落秋霜2 小时前
Python入门篇【正则表达式】
python·mysql·正则表达式
Hello.Reader2 小时前
PySpark 安装保姆级教程pip、Conda、手动安装、Spark Connect 一次讲透(一)
python·spark·conda·pip
Csvn2 小时前
Python 生成器与迭代器:惰性求值的强大力量
python
竹林8182 小时前
用Python脚本批量发布Markdown文章,我踩了三个坑才搞定
python·markdown·自动化运维
Chase_______2 小时前
【快速入手 Python 基础 | 第1章】:数据存储与运算
开发语言·python
hongyuyahei2 小时前
GSPO策略损失完整演示
pytorch·python
&星痕&2 小时前
从零开始手搓 (1)计算图 (c++,python语言实现)
c++·python·深度学习·机器学习