本文目录导读:
- 目录导读
- 为什么你需要一套Python通用工具?
- 案例一:文件与文件夹批量管理
- 案例二:Excel与CSV数据处理自动化
- 案例三:网页信息抓取与监控
- 案例四:定时任务与系统通知
- 常见问题与避坑指南
- 从工具思维到自动化习惯
Python通用工具案例实操:从脚本到自动化,零基础也能上手的高效工具箱
目录导读
-
为什么你需要一套Python通用工具?
- 现实痛点与Python的解决方案
- 与Excel/VBA的对比优势
-
文件与文件夹批量管理
- 自动重命名、分类与清理
- 代码实战:10秒处理1000个文件
-
Excel与CSV数据处理自动化
- 合并、拆分、清洗与格式转换
- 实用函数库 pandas 快速入门
-
网页信息抓取与监控
- 爬虫基础:requests + BeautifulSoup
- 实战:监控商品价格变化并发送提醒
-
定时任务与系统通知
- Windows任务计划程序 vs Python schedule库
- 结合邮件/企业微信发送报告
-
常见问题与避坑指南
Q&A:为什么我的脚本不执行?编码报错怎么办?
-
从工具思维到自动化习惯
为什么你需要一套Python通用工具?
现实场景:每天重复打开文件夹、点击右键重命名、复制粘贴Excel数据、手动检查网站更新……这些“低价值但必须做”的任务,正在消耗你的精力。
Python的优势:
- 一次编写,无限复用
- 跨平台(Windows/Mac/Linux)
- 强大的第三方库生态(os, shutil, pandas, requests, schedule等)
对比Excel VBA:Python代码更易读、调试更方便,且能与数据库、网页、API无缝对接。
问答环节
Q:我完全零编程基础,能学会吗?
A:完全可以,本文所有案例均基于“复制-粘贴-修改路径”就能运行,你只需懂最基础的变量和循环概念。
案例一:文件与文件夹批量管理
目标:将某个文件夹内所有照片按拍摄日期自动归类到相应月份子文件夹。
核心库:os, shutil, datetime
import os
import shutil
from datetime import datetime
source_path = r'C:\你的照片文件夹'
for file in os.listdir(source_path):
if file.endswith(('.jpg', '.png')):
# 获取文件修改日期
mtime = os.path.getmtime(os.path.join(source_path, file))
month_str = datetime.fromtimestamp(mtime).strftime('%Y-%m')
target_dir = os.path.join(source_path, month_str)
os.makedirs(target_dir, exist_ok=True)
shutil.move(os.path.join(source_path, file), os.path.join(target_dir, file))
实战要点:
exist_ok=True避免文件夹已存在时报错- 可扩展为根据文件大小、后缀名等进行分类
案例二:Excel与CSV数据处理自动化
目标:将3个结构相同的销售报表合并成一个,并自动去除重复行、填充空值。
核心库:pandas
import pandas as pd
import glob
file_list = glob.glob('销售报表_*.xlsx')
df_list = [pd.read_excel(f) for f in file_list]
merged_df = pd.concat(df_list, ignore_index=True)
# 数据清洗
merged_df.drop_duplicates(inplace=True)
merged_df.fillna(0, inplace=True)
merged_df.to_excel('汇总报表.xlsx', index=False)
问答环节
Q:pandas安装很慢怎么办?
A:使用国内镜像源:pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
案例三:网页信息抓取与监控
目标:监控某电商平台商品价格,当低于设定值时自动发送邮件提醒。
核心库:requests, BeautifulSoup, smtplib
import requests
from bs4 import BeautifulSoup
import smtplib
from email.mime.text import MIMEText
def check_price(url, threshold):
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
price = float(soup.select_one('.price').text.replace('¥', ''))
if price < threshold:
msg = MIMEText(f'价格已降至{price}元!')
msg['Subject'] = '降价提醒'
with smtplib.SMTP('smtp.qq.com', 587) as server:
server.starttls()
server.login('你的邮箱', '授权码')
server.send_message(msg)
注意事项:
- 某些网站反爬虫严格,需添加
headers或使用selenium - 建议结合
sched或schedule库设置检查频率
案例四:定时任务与系统通知
目标:每天早上9点自动清理临时文件夹,并将结果推送至企业微信群。
核心库:schedule, requests(Webhook)
import schedule
import time
import shutil
import requests
def cleanup_and_notify():
shutil.rmtree(r'C:\Temp\old', ignore_errors=True)
webhook_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的key'
data = {"msgtype": "text", "text": {"content": "临时文件清理完成"}}
requests.post(webhook_url, json=data)
schedule.every().day.at("09:00").do(cleanup_and_notify)
while True:
schedule.run_pending()
time.sleep(60)
主流替代方案:
- Windows:任务计划程序(无需后台运行Python)
- Linux:cron表达式
- 跨平台:
apscheduler库更强大
常见问题与避坑指南
Q1:脚本双击后一闪而过怎么办?
A:在代码末尾加上input('按任意键退出...') 或打包成exe。
Q2:读取CSV时中文乱码?
A:使用encoding='utf-8-sig' 或 encoding='gbk'。
Q3:爬虫被网站封IP?
A:使用time.sleep(5)降低访问频率,或设置代理IP池。
Q4:我想把工具分享给同事,他电脑没Python?
A:使用PyInstaller打包成单个exe文件:pip install pyinstaller,然后执行pyinstaller -F 你的脚本.py。
从工具思维到自动化习惯
Python通用工具的本质是“用代码代替重复劳动”。
- 初期:直接复制本文案例,修改路径和参数即可应用
- 进阶:将多个工具组合成“自动化流水线”
- 你不再需要手动处理任何可被描述的重复任务
能交给机器的事,千万别手做。 从今天开始,尝试用Python解决本周最让你头疼的重复工作——你会发现,代码远比Excel宏和手工点击更友好。
下一步建议:
- 先拿案例一处理一下你的下载文件夹(放心,不会删文件)
- 尝试修改案例三的监控对象为自己常逛的网站
- 遇到问题直接复制错误信息到搜索引擎,99%已有答案
开始你的第一个自动化吧!
标签: 工具案例