Python 自动化办公的 10 大脚本

news/2024/12/4 0:09:42/

大家好,我是你们的 Python 讲师!今天我们将讨论 10 个实用的 Python 自动化办公脚本。这些脚本可以帮助你简化日常工作,提高效率。无论是处理 Excel 文件、发送邮件,还是自动化网页操作,Python 都能派上用场。

1. 批量重命名文件

如果你需要对一堆文件进行重命名,比如给文件添加前缀或后缀,可以使用以下脚本:

import osdef batch_rename_files(directory, prefix):"""批量重命名指定目录下的所有文件,添加前缀"""for filename in os.listdir(directory):new_name = f"{prefix}_{filename}"os.rename(os.path.join(directory, filename), os.path.join(directory, new_name))print("文件重命名完成")# 使用示例
batch_rename_files('path/to/your/directory', 'new_prefix')
 

说明:此脚本遍历指定目录中的所有文件,并为每个文件添加指定的前缀。

2. 自动发送电子邮件

使用 smtplib 库,你可以轻松实现自动发送电子邮件的功能。

import smtplib
from email.mime.text import MIMETextdef send_email(subject, body, to_email):"""发送电子邮件"""from_email = 'your_email@example.com'password = 'your_email_password'# 创建邮件内容msg = MIMEText(body)msg['Subject'] = subjectmsg['From'] = from_emailmsg['To'] = to_email# 发送邮件with smtplib.SMTP_SSL('smtp.example.com', 465) as server:server.login(from_email, password)server.send_message(msg)print("邮件发送成功")# 使用示例
send_email("测试主题", "这是一封测试邮件", "recipient@example.com")
 

说明:确保替换邮件地址和 SMTP 服务器信息,以使其适应你的邮箱设置。

3. 批量处理 Excel 文件

使用 pandas 和 openpyxl 库,可以轻松读取和写入 Excel 文件。

import pandas as pddef process_excel(file_path):"""读取 Excel 文件并处理数据"""df = pd.read_excel(file_path)  # 读取 Excel 文件df['新列'] = df['原列'] * 2  # 在 DataFrame 中添加新列df.to_excel('processed_file.xlsx', index=False)  # 保存处理后的结果print("Excel 文件处理完成")# 使用示例
process_excel('path/to/your/excel_file.xlsx')
 

说明:此脚本读取指定的 Excel 文件,对其中一列的数据进行简单的数学运算,然后保存处理后的结果到新的 Excel 文件中。

4. 网页抓取数据

使用 requests 和 BeautifulSoup,可以轻松从网页抓取数据。

import requests
from bs4 import BeautifulSoupdef fetch_data(url):"""从指定 URL 抓取数据"""response = requests.get(url)soup = BeautifulSoup(response.content, 'html.parser')titles = [title.get_text() for title in soup.find_all('h2')]  # 假设标题在 <h2> 标签中print("抓取到的标题:")for title in titles:print(title)# 使用示例
fetch_data('https://example.com')
 

说明:该脚本访问指定的 URL,解析 HTML 内容,并提取所有 <h2> 标签内的文本。

5. 文件备份

这个脚本可以帮助你快速备份指定目录中的文件。

import shutil
import os
import datetimedef backup_files(source_directory, backup_directory):"""备份文件到指定目录"""date_str = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")backup_path = os.path.join(backup_directory, f"backup_{date_str}")shutil.copytree(source_directory, backup_path)  # 复制整个目录print(f"备份完成: {backup_path}")# 使用示例
backup_files('path/to/source_directory', 'path/to/backup_directory')
 

说明:该脚本使用 shutil.copytree() 方法复制源目录中的所有文件到备份目录。

6. 自动生成报告

如果你需要根据数据生成报告,可以使用 pandas 来处理数据并生成 PDF 或 Excel 格式的报告。

import pandas as pddef generate_report(data):"""根据数据生成简单的 Excel 报告"""df = pd.DataFrame(data)df.to_excel('report.xlsx', index=False)print("报告已生成: report.xlsx")# 使用示例
data = {'姓名': ['张三', '李四'],'分数': [90, 85]
}
generate_report(data)
 

说明:该脚本将样本数据转换为一个 Excel 文件。

7. 图片批量处理

使用 Pillow 库,可以批量处理图片,例如调整大小或格式转换。

from PIL import Image
import osdef resize_images(source_directory, output_directory, size=(800, 800)):"""调整指定目录下所有图片的大小"""if not os.path.exists(output_directory):os.makedirs(output_directory)for filename in os.listdir(source_directory):if filename.endswith(('.png', '.jpg', '.jpeg')):img_path = os.path.join(source_directory, filename)img = Image.open(img_path)img = img.resize(size)img.save(os.path.join(output_directory, filename))print(f"已调整大小并保存: {filename}")# 使用示例
resize_images('path/to/source_images', 'path/to/output_images', (800, 800))
 

说明:该脚本遍历指定目录,调整每张图片的大小并保存到输出目录。

8. 数据库操作

使用 sqlite3 库,可以方便地与 SQLite 数据库进行交互。

import sqlite3def create_table():"""创建一个简单的SQLite表"""conn = sqlite3.connect('example.db')cursor = conn.cursor()cursor.execute('''CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')conn.commit()conn.close()print("表创建成功")# 使用示例
create_table()
 

说明:此脚本连接到 SQLite 数据库并创建一个用户表。

9. 自动化日程提醒

可以使用 schedule 库设置定时任务,比如每天发送提醒邮件。

import schedule
import timedef job():print("这是您的日程提醒!请记得查看日程安排。")# 设置每天的提醒时间
schedule.every().day.at("10:00").do(job)while True:schedule.run_pending()time.sleep(1)
 

说明:该脚本每天下午 10 点执行预定的提醒任务。

10. 网络监控

可以编写一个简单的脚本来监控特定网站的状态,确保它们正常运行。

import requestsdef check_website(url):"""检查网站是否正常"""try:response = requests.get(url)if response.status_code == 200:print(f"{url} 正常运行")else:print(f"{url} 返回状态码: {response.status_code}")except requests.exceptions.RequestException as e:print(f"访问 {url} 时发生错误: {e}")# 使用示例
check_website('https://example.com')
 

说明:该脚本尝试访问指定的网站,并根据响应状态码判断网站是否正常运行。

总结

以上就是 Python 自动化办公的 10 大脚本。这些脚本可以帮助你简化日常工作,提高生产力。掌握这些基本技能后,你将能够更高效地处理各种办公任务。如果你有任何问题或者想要讨论的内容,欢迎在评论区留言!

希望这篇文章能为你的 Python 编程之路提供帮助!下次再见!

全套Python学习资料分享:

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

图片

二、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

图片

三、python入门资料大全

图片

四、python进阶资料大全

图片

五、python爬虫专栏

图片

六、入门学习视频全套

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

图片

七、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

图片

八、python最新面试题

图片


http://www.ppmy.cn/news/1552130.html

相关文章

XML 查看器:深入理解与高效使用

XML 查看器:深入理解与高效使用 XML(可扩展标记语言)是一种用于存储和传输数据的标记语言。它通过使用标签来定义数据结构,使得数据既易于人类阅读,也易于机器解析。在本文中,我们将探讨 XML 查看器的功能、重要性以及如何高效使用它们。 什么是 XML 查看器? XML 查看…

Java-15 深入浅出 MyBatis - 插件机制 PageHelper 与 通用 Mapper

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 大数据篇正在更新&#xff01;https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了&#xff1a; MyBatis&#xff…

Java 基础之 List 深度探秘

List 是什么&#xff1f; List 集合是 Java 集合框架中的一种有序、可重复的数据结构&#xff0c;它继承自 Collection 接口&#xff0c;允许存储多个元素。与数组不同&#xff0c;List 集合的大小是动态可变的&#xff0c;可以根据需要动态地添加或删除元素。 List 集合中的…

【Leetcode 每日一题】52. N 皇后 II

问题背景 n n n 皇后问题 研究的是如何将 n n n 个皇后放置在 n n n \times n nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n n n&#xff0c;返回 n n n 皇后问题 不同的解决方案的数量。 数据约束 1 ≤ n ≤ 9 1 \le n \le 9 1≤n≤9 解题…

【鸿蒙】鸿蒙开发过程中this指向问题

文章目录 什么是 this&#xff1f;常见 this 指向问题案例分析&#xff1a;HarmonyOS 组件中的 this 指向问题问题描述问题分析原因 解决方案&#xff1a;绑定 this 的正确方法方法一&#xff1a;使用箭头函数方法二&#xff1a;手动绑定 this 完整代码示例使用箭头函数使用 bi…

三格电子—单通道串口服务器

型号&#xff1a;SG-TCP232-110 一、产品介绍 1.1 功能简介 SG-TCP232-110 是一款用来进行串口数据和网口数据转换的设备。解决普通 串口设备在 Internet 上的联网问题。 设备的串口部分提供一个 232 接口和一个 485 接口&#xff0c;两个接口内部连接&#xff0c;…

深度学习案例:ResNet50模型+SE-Net

本文为为&#x1f517;365天深度学习训练营内部文章 原作者&#xff1a;K同学啊 一 回顾ResNet模型 ResNet&#xff0c;即残差网络&#xff0c;是由微软研究院的Kaiming He及其合作者于2015年提出的一种深度卷积神经网络架构。该网络架构的核心创新在于引入了“残差连接”&…

使用 Docker 部署 Spring Boot 项目流程

文章目录 使用 Docker 部署 Spring Boot 项目流程1. 构建 Spring Boot 项目使用 Maven 构建项目&#xff1a;使用 Gradle 构建项目&#xff1a; 2. 创建 Dockerfile示例 Dockerfile&#xff1a;解释&#xff1a; 3. 构建 Docker 镜像4. 运行 Docker 容器5. 查看容器日志6. 管理…