Python自动化办公的十大场景脚本分享

 更新时间:2026年03月30日 08:48:52   作者:镇河山老七  
作为一名程序员,我深知重复性工作是时间杀手,每天花 1 小时整理报表,下载数据,处理文件,一周就是 5 小时,一个月就是 20 小时,本文整理了 Python 自动化了工作中的 10 个重复场景,代码已开源,有需要的可以了解下

本文所有脚本均可直接复用,GitHub 仓库已开源

前言

作为一名程序员,我深知重复性工作是时间杀手。

每天花 1 小时整理报表、下载数据、处理文件……一周就是 5 小时,一个月就是 20 小时。

这 20 小时,本可以用来学习新技术、做副业、或者单纯休息。

过去半年,我用 Python 自动化了工作中的 10 个重复场景,每周节省约 8 小时。今天把代码全部开源,你可以直接拿去用。

场景一:自动整理日报/周报

痛点: 每天要从多个系统导出数据,手动合并成 Excel 报表

自动化方案:

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 小时

场景二:批量处理图片/文件

痛点: 运营同事经常需要批量压缩图片、重命名文件

自动化方案:

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 小时

场景三:自动监控价格/库存

痛点: 电商运营需要定时检查竞品价格和库存

自动化方案:

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 小时

场景四:自动发送邮件/通知

痛点: 定期要给客户/团队发送进度邮件

自动化方案:

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 小时

场景五:数据清洗/格式转换

痛点: 客户给的数据格式混乱,需要手动整理

自动化方案:

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 小时

场景六:自动截图/录屏

痛点: 需要定期截图记录页面状态

自动化方案:

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 小时

场景七:批量注册/填表

痛点: 需要在多个平台重复填写相同信息

自动化方案:

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 小时

场景八:文件自动备份

痛点: 经常忘记备份重要文件

自动化方案:

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 小时(主要是心理负担减轻)

场景九:自动抓取竞品信息

痛点: 需要手动收集竞品动态

自动化方案:

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 小时

场景十:定时任务调度

痛点: 需要记得在特定时间执行任务

自动化方案:

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.25h5 分钟1h
图片处理1h5 分钟0.75h
价格监控1.5h自动1.5h
邮件通知0.5h自动0.5h
数据清洗1h10 分钟0.75h
自动截图0.75h自动0.75h
批量填表0.5h自动0.5h
文件备份0.25h自动0.25h
竞品抓取2h自动2h
任务调度1h自动1h
合计9.75h约 1h8.75h

到此这篇关于Python自动化办公的十大场景脚本分享的文章就介绍到这了,更多相关Python自动化办公内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python3.5仿微软计算器程序

    python3.5仿微软计算器程序

    这篇文章主要为大家详细介绍了python3.5仿微软计算器程序的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Keras 多次加载model出错的解决方案

    Keras 多次加载model出错的解决方案

    这篇文章主要介绍了Keras 多次加载model出错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python中encode和encoding的区别小结

    Python中encode和encoding的区别小结

    encode和encoding在Python中虽然都与字符编码相关,但它们的角色和用途是不同的,本文主要介绍了Python中encode和encoding的区别小结,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • python DataFrame中stack()方法、unstack()方法和pivot()方法浅析

    python DataFrame中stack()方法、unstack()方法和pivot()方法浅析

    这篇文章主要给大家介绍了关于python DataFrame中stack()方法、unstack()方法和pivot()方法的相关资料,pandas中这三种方法都是用来对表格进行重排的,其中stack()是unstack()的逆操作,需要的朋友可以参考下
    2022-04-04
  • Python 实现数据结构-循环队列的操作方法

    Python 实现数据结构-循环队列的操作方法

    这篇文章主要介绍了Python 实现数据结构-循环队列的操作方法,需要的朋友可以参考下
    2019-07-07
  • Pytorch之tensorboard无法启动和显示问题及解决

    Pytorch之tensorboard无法启动和显示问题及解决

    这篇文章主要介绍了Pytorch之tensorboard无法启动和显示问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Django Form设置文本框为readonly操作

    Django Form设置文本框为readonly操作

    这篇文章主要介绍了Django Form设置文本框为readonly操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • python生成随机密码或随机字符串的方法

    python生成随机密码或随机字符串的方法

    这篇文章主要介绍了python生成随机密码或随机字符串的方法,涉及Python字符串及随机数的相关使用技巧,非常简单实用,需要的朋友可以参考下
    2015-07-07
  • 使用python实现mqtt的发布和订阅

    使用python实现mqtt的发布和订阅

    这篇文章主要介绍了使用python实现mqtt的发布和订阅,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • python 实时得到cpu和内存的使用情况方法

    python 实时得到cpu和内存的使用情况方法

    今天小编就为大家分享一篇python 实时得到cpu和内存的使用情况方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06

最新评论