news 2026/5/28 7:11:01

2026 年 Python 自动化实战:5 个开箱即用的脚本,帮你告别重复劳动

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2026 年 Python 自动化实战:5 个开箱即用的脚本,帮你告别重复劳动

声明:本文为个人学习与工作经验总结,所有脚本均经过实际测试,旨在帮助开发者提高工作效率。如有疑问欢迎交流讨论。

作为程序员,我们每天都会遇到很多重复繁琐的工作:批量重命名文件、整理下载文件夹、发送邮件、处理 Excel 数据…… 这些工作不仅浪费时间,还容易出错。

Python 作为一门简单易用的脚本语言,是解决这些问题的最佳选择。今天我就为大家分享 5 个开箱即用的 Python 自动化脚本,覆盖日常工作中最常见的场景,让你从此告别重复劳动。

一、批量重命名文件

下载文件夹里总是一堆乱七八糟的文件名?这个脚本可以帮你批量重命名指定文件夹下的所有文件,支持添加前缀、后缀和序号。

python

运行

import os def batch_rename_files(folder_path, prefix="file", start_num=1): """ 批量重命名文件夹中的所有文件 :param folder_path: 文件夹路径 :param prefix: 文件名前缀 :param start_num: 起始序号 """ # 获取文件夹中的所有文件 files = os.listdir(folder_path) for index, filename in enumerate(files, start=start_num): # 构建旧文件路径和新文件路径 old_path = os.path.join(folder_path, filename) # 跳过文件夹 if os.path.isdir(old_path): continue # 获取文件扩展名 file_ext = os.path.splitext(filename)[1] # 构建新文件名 new_filename = f"{prefix}_{index:03d}{file_ext}" new_path = os.path.join(folder_path, new_filename) # 重命名文件 os.rename(old_path, new_path) print(f"重命名: {filename} -> {new_filename}") # 使用示例 if __name__ == "__main__": folder = "./downloads" # 替换为你的文件夹路径 batch_rename_files(folder, prefix="document", start_num=1) print("批量重命名完成!")

二、自动整理下载文件夹

下载文件夹总是杂乱无章?这个脚本可以根据文件类型自动将文件分类到不同的文件夹中。

python

运行

import os import shutil def organize_download_folder(folder_path): """ 自动整理下载文件夹,按文件类型分类 :param folder_path: 下载文件夹路径 """ # 定义文件类型和对应的文件夹 file_types = { "图片": [".jpg", ".jpeg", ".png", ".gif", ".bmp", ".svg"], "文档": [".pdf", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".txt"], "视频": [".mp4", ".avi", ".mov", ".mkv", ".flv"], "音频": [".mp3", ".wav", ".flac", ".aac"], "压缩包": [".zip", ".rar", ".7z", ".tar", ".gz"], "程序": [".exe", ".msi", ".dmg", ".pkg", ".deb"] } # 创建分类文件夹 for folder in file_types.keys(): folder_full_path = os.path.join(folder_path, folder) if not os.path.exists(folder_full_path): os.makedirs(folder_full_path) # 创建其他文件夹 others_folder = os.path.join(folder_path, "其他") if not os.path.exists(others_folder): os.makedirs(others_folder) # 遍历所有文件 for filename in os.listdir(folder_path): file_path = os.path.join(folder_path, filename) # 跳过文件夹 if os.path.isdir(file_path): continue # 获取文件扩展名 file_ext = os.path.splitext(filename)[1].lower() # 移动文件到对应的文件夹 moved = False for folder, extensions in file_types.items(): if file_ext in extensions: dest_path = os.path.join(folder_path, folder, filename) shutil.move(file_path, dest_path) print(f"移动: {filename} -> {folder}") moved = True break # 移动到其他文件夹 if not moved: dest_path = os.path.join(others_folder, filename) shutil.move(file_path, dest_path) print(f"移动: {filename} -> 其他") # 使用示例 if __name__ == "__main__": download_folder = os.path.expanduser("~/Downloads") # 系统默认下载文件夹 organize_download_folder(download_folder) print("下载文件夹整理完成!")

三、批量处理 Excel 数据

需要处理大量 Excel 文件?这个脚本可以帮你批量读取多个 Excel 文件,合并数据并生成汇总报表。

python

运行

import pandas as pd import os def merge_excel_files(folder_path, output_file="merged_data.xlsx"): """ 批量合并文件夹中的所有Excel文件 :param folder_path: 文件夹路径 :param output_file: 输出文件名 """ # 存储所有数据 all_data = [] # 遍历文件夹中的所有Excel文件 for filename in os.listdir(folder_path): if filename.endswith((".xlsx", ".xls")) and not filename.startswith("~$"): file_path = os.path.join(folder_path, filename) print(f"正在读取: {filename}") # 读取Excel文件 df = pd.read_excel(file_path) # 添加来源文件名列 df["来源文件"] = filename # 添加到数据列表 all_data.append(df) # 合并所有数据 if all_data: merged_df = pd.concat(all_data, ignore_index=True) # 保存合并后的数据 merged_df.to_excel(output_file, index=False) print(f"合并完成!共合并 {len(all_data)} 个文件,输出到 {output_file}") else: print("没有找到Excel文件") # 使用示例 if __name__ == "__main__": excel_folder = "./excel_files" # 替换为你的Excel文件夹路径 merge_excel_files(excel_folder, output_file="销售数据汇总.xlsx")

四、自动发送邮件

需要定期发送邮件?这个脚本可以帮你自动发送带附件的邮件,支持群发。

python

运行

import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication def send_email(sender_email, sender_password, receiver_emails, subject, body, attachments=None): """ 发送带附件的邮件 :param sender_email: 发件人邮箱 :param sender_password: 发件人邮箱密码/授权码 :param receiver_emails: 收件人邮箱列表 :param subject: 邮件主题 :param body: 邮件正文 :param attachments: 附件路径列表 """ # 创建邮件对象 msg = MIMEMultipart() msg["From"] = sender_email msg["To"] = ", ".join(receiver_emails) msg["Subject"] = subject # 添加邮件正文 msg.attach(MIMEText(body, "plain", "utf-8")) # 添加附件 if attachments: for file_path in attachments: with open(file_path, "rb") as f: part = MIMEApplication(f.read()) part.add_header("Content-Disposition", "attachment", filename=os.path.basename(file_path)) msg.attach(part) # 发送邮件 try: # 这里以QQ邮箱为例,其他邮箱请修改SMTP服务器和端口 server = smtplib.SMTP_SSL("smtp.qq.com", 465) server.login(sender_email, sender_password) server.sendmail(sender_email, receiver_emails, msg.as_string()) server.quit() print("邮件发送成功!") except Exception as e: print(f"邮件发送失败: {e}") # 使用示例 if __name__ == "__main__": sender = "your_email@qq.com" password = "your_authorization_code" # QQ邮箱使用授权码 receivers = ["receiver1@example.com", "receiver2@example.com"] subject = "每周工作汇报" body = "您好,附件是本周的工作汇报,请查收。" attachments = ["./工作汇报.docx", "./数据报表.xlsx"] send_email(sender, password, receivers, subject, body, attachments)

五、网站状态监控脚本

需要监控网站是否正常运行?这个脚本可以定期检查网站状态,当网站无法访问时发送邮件提醒。

python

运行

import requests import time import smtplib from email.mime.text import MIMEText def check_website_status(url): """ 检查网站是否正常运行 :param url: 网站URL :return: 正常返回True,异常返回False """ try: response = requests.get(url, timeout=10) return response.status_code == 200 except Exception as e: print(f"检查网站失败: {e}") return False def send_alert_email(url, sender_email, sender_password, receiver_email): """ 发送网站异常提醒邮件 """ subject = f"网站异常提醒: {url}" body = f"网站 {url} 无法访问,请及时检查!" msg = MIMEText(body, "plain", "utf-8") msg["From"] = sender_email msg["To"] = receiver_email msg["Subject"] = subject try: server = smtplib.SMTP_SSL("smtp.qq.com", 465) server.login(sender_email, sender_password) server.sendmail(sender_email, receiver_email, msg.as_string()) server.quit() print("提醒邮件发送成功!") except Exception as e: print(f"提醒邮件发送失败: {e}") def monitor_websites(urls, check_interval=300): """ 监控多个网站状态 :param urls: 网站URL列表 :param check_interval: 检查间隔(秒),默认5分钟 """ # 网站状态记录 website_status = {url: True for url in urls} print("开始监控网站状态...") while True: for url in urls: current_status = check_website_status(url) # 如果状态发生变化 if current_status != website_status[url]: if not current_status: print(f"网站异常: {url}") send_alert_email(url, "your_email@qq.com", "your_password", "alert@example.com") else: print(f"网站恢复正常: {url}") # 更新状态 website_status[url] = current_status # 等待下一次检查 time.sleep(check_interval) # 使用示例 if __name__ == "__main__": websites_to_monitor = [ "https://www.example.com", "https://www.baidu.com" ] monitor_websites(websites_to_monitor, check_interval=300)

六、Python 自动化最佳实践

  1. 添加异常处理:在脚本中加入 try-except 语句,避免因意外错误导致脚本崩溃
  2. 使用配置文件:将敏感信息(如邮箱密码)和可配置参数放在单独的配置文件中
  3. 添加日志记录:使用 logging 模块记录脚本运行情况,方便问题排查
  4. 编写注释和文档:为函数和关键代码添加注释,方便自己和他人理解
  5. 定期备份数据:在进行文件操作前,先备份重要数据,防止误操作

写在最后

Python 自动化的魅力在于,它能让你用几行代码解决原本需要几个小时才能完成的工作。上面这 5 个脚本只是 Python 自动化的冰山一角,你可以根据自己的实际需求进行修改和扩展。

希望今天分享的这些脚本能帮助你提高工作效率,把更多的时间花在更有创造性的事情上。如果你有其他实用的 Python 自动化脚本,欢迎在评论区分享给大家。

互动话题:你用 Python 写过哪些实用的自动化脚本?解决了什么问题?欢迎在评论区留言交流~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 7:05:08

我只有两三家虾皮店,需要上ERP吗?给新手小规模卖家的真诚回答。

核心结论:Shopee小卖家无需纠结是否需要ERP,重点在于找准合适的启用时机,让工具适配店铺运营节奏、提升运营效率。 对于仅运营2-3家Shopee店铺、日订单量为个位数至十几单的中小卖家而言,需不需要上erp其实都可以,人工…

作者头像 李华
网站建设 2026/5/28 7:04:08

3D高斯泼溅技术优化与实时渲染实践

1. 3D高斯泼溅技术基础与实时渲染挑战3D高斯泼溅(3D Gaussian Splatting)作为新一代实时渲染技术,正在彻底改变AR/VR和自动驾驶等领域的视觉呈现方式。这项技术的核心思想是将三维场景分解为数十万个椭球状的高斯分布,每个高斯体携…

作者头像 李华
网站建设 2026/5/28 6:56:09

国密改造实战:将传统PKCS#7流程无缝升级为SM2+P7格式的完整指南

国密算法迁移实战:从PKCS#7到SM2P7的无缝升级策略在金融、政务等对安全性要求极高的领域,国密算法正逐步成为标配。但现实情况往往是:系统已经稳定运行多年,基于RSA的PKCS#7签名流程深入业务各个环节,如何在不影响现有…

作者头像 李华
网站建设 2026/5/28 6:55:04

AI Agent协议解析:A2A与MCP如何构建智能体协同生态

1. 项目概述:2025年的AI Agent协议格局如果你最近在关注AI领域,尤其是AI Agent(智能体)的发展,那么“协议”这个词出现的频率一定高得惊人。从去年底开始,A2A、MCP这些缩写就像雨后春笋一样冒出来&#xff…

作者头像 李华