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自动化办公内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python爬虫之pyppeteer库简单使用

    python爬虫之pyppeteer库简单使用

    Puppeteer 是 Google 基于 Node.js 开发的一个工具,有了它我们可以通过 JavaScript 来控制 Chrome 浏览器的一些操作,当然也可以用作网络爬虫上,其 API 极其完善,功能非常强大
    2021-07-07
  • Python转换字典成为对象,可以用

    Python转换字典成为对象,可以用"."方式访问对象属性实例

    这篇文章主要介绍了Python转换字典成为对象,可以用"."方式访问对象属性实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 在不同系统间迁移Python程序的方法与教程

    在不同系统间迁移Python程序的方法与教程

    本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用Anaconda环境以及远程桌面连接和配置(作为临时方案),通过这些方法,可以有效地解决环境搭建和依赖安装问题
    2025-02-02
  • python 读取以空格分开的文件操作

    python 读取以空格分开的文件操作

    这篇文章主要介绍了python 读取以空格分开的文件操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • Python实现LRU算法的2种方法

    Python实现LRU算法的2种方法

    这篇文章主要介绍了Python实现LRU算法的2种方法,本文分别给出了用OrderedDict实现、用dict+list实现两种方法,需要的朋友可以参考下
    2015-06-06
  • WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法

    WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法

    这篇文章主要给大家分享的是在WINDOWS下同时安装 python2 python3 后 pip 错误的解决方法,非常的实用,有需要的小伙伴可以参考下
    2017-03-03
  • Django文件上传与下载(FileFlid)

    Django文件上传与下载(FileFlid)

    这篇文章主要为大家详细介绍了Django1.4文件上传与下载功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Python解决多线程运行异步代码报错"There is no current event loop"

    Python解决多线程运行异步代码报错"There is no current event loop

    在Python开发中,我们经常需要同时处理高并发网络请求和CPU密集型任务,不过当尝试在多线程环境中运行异步代码时,可能会报错"There is no current event loop",下面我们看看具体的解决方法吧
    2025-04-04
  • python语法教程之def()函数定义及用法

    python语法教程之def()函数定义及用法

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,下面这篇文章主要给大家介绍了关于python语法教程之def()函数定义及用法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • 利用ImageAI库只需几行python代码实现目标检测

    利用ImageAI库只需几行python代码实现目标检测

    这篇文章主要介绍了利用ImageAI库只需几行python代码超简实现目标检测功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08

最新评论