Python 自动化办公的 10 大脚本

大家好,我是你们的 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.mzph.cn/web/61679.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UNITY_GOF_ChainOfResponsibility

责任链模式 经理和高管可以响应采购请求或将其移交给上级。 每个位置都可以有自己的一套规则&#xff0c;他们可以批准这些订单。 首先有一个领导类专门负责处理这些请求之后根据权限分别对子类进行处理在调用的时候会根据处理类的权限进行处理&#xff0c;如果权限不足就传递给…

什么是Git

Git Git是什么&#xff1f;Git核心功能Git的常用命令Git原理对象存储Blob对象Tree对象 分支管理版本合并Git的工作流程Git的底层操作 Git是什么&#xff1f; Git是一种分布式版本控制系统&#xff0c;它可以帮助团队协作开发&#xff0c;跟踪代码变更历史&#xff0c;管理和维…

.net XSSFWorkbook 读取/写入 指定单元格的内容

方法如下&#xff1a; using NPOI.SS.Formula.Functions;using NPOI.SS.UserModel;using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;using OfficeOpenXml.FormulaParsing.Excel.Functions.Numeric;/// <summary>/// 读取Excel指定单元格内容/// </summa…

704. 二分查找 C++

文章目录 一、题目链接二、参考代码三、所思所悟 一、题目链接 链接: 704. 二分查找 二、参考代码 int search(const vector<int>& nums, int target) {int left 0; int right nums.size() - 1;//左闭右闭[]while (left < right){int mid (left right) / 2;…

Matlab搜索路径添加不上

发现无论是右键文件夹添加到路径&#xff0c;还是在“设置路径”中专门添加&#xff0c;我的路径始终添加不上&#xff0c;导致代码运行始终报错&#xff0c;后来将路径中的“”加号去掉后&#xff0c;就添加成功了&#xff0c;经过测试&#xff0c;路径中含有中文也可以添加成…

知乎启用AutoMQ替换Kafka,开辟成本优化与运维提效新纪元

作者&#xff1a;知乎在线架构组 王金龙 关于知乎 知乎公司&#xff0c;成立于 2010 年 8 月 10 日&#xff0c;于 2011 年 1 月 26 日正式上线&#xff0c;是中文互联网的高质量问答社区和创作者聚集的原创内容平台。 知乎起步于问答&#xff0c;而超越了问答。知乎以「生…

Canal mysql数据库同步到es

Canal与Elasticsearch集成指南 [可视化工具](https://knife.blog.csdn.net/article/details/126348055)下载Canal 1.1.5版本 (alpha-2) 请从GitHub Releases下载Canal 1.1.5版本中间版本alpha-2。仅需下载canal.deployer和canal.adapter组件。 安装Elasticsearch 确保已安装…

LeetCode41:缺失的第一个正数

原题地址&#xff1a;41. 缺失的第一个正数 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1&#xff1a; 输入…

Python蒙特卡罗MCMC:优化Metropolis-Hastings采样策略Fisher矩阵计算参数推断应用—模拟与真实数据...

全文链接&#xff1a;https://tecdat.cn/?p38397 本文介绍了其在过去几年中的最新开发成果&#xff0c;特别阐述了两种有助于提升 Metropolis - Hastings 采样性能的新要素&#xff1a;跳跃因子的自适应算法以及逆 Fisher 矩阵的计算&#xff0c;该逆 Fisher 矩阵可用作提议密…

相机学习笔记——工业相机的基本参数

0、相机分类 图像颜色不同可以分为黑白相机和彩色相机&#xff1a;相同分辨率下&#xff0c;黑白工业相机相比彩色工业相机精度更高&#xff0c;检测图像边缘时&#xff0c;黑白工业相机成像效果更好。 芯片类型不同可以分为CCD相机和CMOS相机&#xff1a;CCD工业相机具有体积小…

SpringBoot Web 开发请求参数

SpringBoot Web 开发请求参数 简单的 web 请求: @RestController public class HelloController {@RequestMapping("sayHello")public String sayHello(){System.out.println("Hello World");return "hello world";} }获取请求参数 简单参数…

服务器如何隐藏端口才能不被扫描?

在服务器上隐藏端口以避免被扫描&#xff0c;是一种增强安全性的措施。虽然完全隐藏端口不太可能&#xff08;因为网络通信本质上需要暴露端口&#xff09;&#xff0c;但可以通过一系列技术手段尽量降低端口被扫描或探测的可能性。以下是详细的实现方法&#xff1a; 1. 更改默…

Oracle—系统包使用

文章目录 系统包dbms_redefinition 系统包 dbms_redefinition 功能介绍&#xff1a;该包体可以实现将Oracle库下的表在线改为分区结构或者重新定义&#xff1b; 说明&#xff1a;在检查表是否可以重定义和开始重定义的过程中&#xff0c;按照表是否存在主键&#xff0c;参数 o…

专业清洁艺术,还原生活本色——友嘉高效除菌洗碗机

生活中&#xff0c;每个人都渴望拥有一份洁净的生活环境。而家&#xff0c;作为我们最温馨的港湾&#xff0c;对洁净的追求更是无时无刻不在进行。每当饭后的欢声笑语过后&#xff0c;面对一堆沾满油渍、藏匿着细菌的餐具&#xff0c;我们不禁感到一丝烦忧。然而&#xff0c;有…

Neo4j 图数据库安装与操作指南(以mac为例)

目录 一、安装前提条件 1.1 Java环境 1.2 Homebrew&#xff08;可选&#xff09; 二、下载并安装Neo4j 2.1 从官方网站下载 2.1.1 访问Neo4j的官方网站 2.1.2 使用Homebrew安装 三、配置Neo4j 3.1 设置环境变量(可选) 3.2 打开配置文件(bash_profile) 3.2.1 打开终端…

无人机主控芯片技术与算法详解!

一、无人机主控芯片核心技术 高性能CPU&#xff1a; 无人机需要高性能的CPU来处理复杂的飞行控制算法、图像处理和数据传输等任务。目前&#xff0c;无人机的CPU主要有大疆自研的飞控系统、高通提供的无人机设计平台Snapdragon Flight&#xff0c;以及基于开源平台APM、Px4等…

基于python的汽车数据爬取数据分析与可视化

一、研究背景 基于提供的代码片段和讨论&#xff0c;我们可以得出一个与网络抓取、数据处理和数据可视化相关的研究背景&#xff0c;该背景涉及到汽车行业。以下是研究背景的陈述&#xff1a; "在迅速发展的汽车行业中&#xff0c;准确和及时的数据对各方利益相关者至关…

JAVA:Springboot 集成 WebSocket 和 STOMP 实时消息的技术指南

1、简述 随着互联网应用的复杂性和实时性需求的增加&#xff0c;传统的 HTTP 请求响应模式已不能满足某些场景的需求。WebSocket 和 STOMP 协议为构建实时消息传输提供了极大的便利。本文将介绍如何在 Spring Boot 中使用 WebSocket 和 STOMP 创建一个实时消息应用&#xff0c…

vue3+ant design vue实现日期选择器默认显示当前年,并限制用户只能选择当前年及之前~

1、思路&#xff1a;之前想拿当前年直接做赋值操作&#xff0c;实际上是行不通的&#xff0c;因为组件本身有数据格式限制&#xff0c;会出现报错&#xff0c;然后索性直接获取当前日期&#xff08;YYYY-MM-DD&#xff09;赋值给日期组件&#xff0c;这样不管你用的是年&#x…

Vue.js 中的事件处理

在 Vue.js 中&#xff0c;事件处理是用户与应用交互的重要方式。Vue.js 允许开发者以一种声明式的方式来绑定事件监听器&#xff0c;这使得代码更加简洁和易于维护。本文将介绍 Vue.js 中的事件处理&#xff0c;包括常用的事件类型和如何使用它们。 Vue.js 事件基础 在 Vue.j…