当前位置: 首页 > news >正文

用 Python 自动化处理日常任务

💖 欢迎来到我的博客! 非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长。

🔍 博客内容包括:

  • Java核心技术与微服务:涵盖Java基础、JVM、并发编程、Redis、Kafka、Spring等,帮助您全面掌握企业级开发技术。
  • 大数据技术:涵盖Hadoop(HDFS)、Hive、Spark、Flink、Kafka、Redis、ECharts、Zookeeper等相关技术。
  • 开发工具:分享常用开发工具(IDEA、Git、Mac、Alfred、Typora等)的使用技巧,提升开发效率。
  • 数据库与优化:总结MySQL及其他常用数据库技术,解决实际工作中的数据库问题。
  • Python与大数据:专注于Python编程语言的深度学习,数据分析工具(如Pandas、NumPy)和大数据处理技术,帮助您掌握数据分析、数据挖掘、机器学习等技术。
  • 数据结构与算法:总结数据结构与算法的核心知识,提升编程思维,帮助您应对大厂面试挑战。

🌟 我的目标:持续学习与总结,分享技术心得与解决方案,和您一起探索技术的无限可能!在这里,我希望能与您共同进步,互相激励,成为更好的自己。

📣 欢迎订阅本专栏,与我一起在这个知识的海洋中不断学习、分享和成长!💻🚀


📍版权声明:本博客所有内容均为原创,遵循CC 4.0 BY-SA协议,转载请注明出处。

目录

1. 自动化文件管理

1.1 批量重命名文件

1.2 自动分类文件

2. 自动化定时任务

2.1 使用 schedule 库定时执行任务

2.2 使用 APScheduler 执行复杂定时任务

3. 自动化发送邮件

4. 自动化网络爬虫

5. 自动化数据处理

5.1 使用 Pandas 库处理数据

5.2 定时备份数据库

6. 自动化图像处理

7. 自动化 Web 操作

总结


1. 自动化文件管理

1.1 批量重命名文件

假设你有一批文件,文件名需要按一定规则批量修改,可以使用 osre 库来实现。

import os
import re# 设置目录路径
directory = 'C:/path/to/your/files'# 获取文件列表
files = os.listdir(directory)# 批量重命名文件
for filename in files:new_name = re.sub(r'old_pattern', 'new_pattern', filename)  # 替换文件名中的内容os.rename(os.path.join(directory, filename), os.path.join(directory, new_name))print("文件重命名完成!")

1.2 自动分类文件

根据文件扩展名自动将文件分类到不同的文件夹中。

import os
import shutil# 设置目录路径
directory = 'C:/path/to/your/files'# 获取文件列表
files = os.listdir(directory)# 定义文件分类规则
file_types = {'images': ['.jpg', '.jpeg', '.png', '.gif'],'documents': ['.pdf', '.txt', '.docx'],'audio': ['.mp3', '.wav']
}# 创建文件夹(如果不存在)
for folder in file_types:if not os.path.exists(os.path.join(directory, folder)):os.makedirs(os.path.join(directory, folder))# 移动文件
for filename in files:file_path = os.path.join(directory, filename)if os.path.isfile(file_path):moved = Falsefor folder, extensions in file_types.items():if any(filename.endswith(ext) for ext in extensions):shutil.move(file_path, os.path.join(directory, folder, filename))moved = Truebreakif not moved:print(f"文件 {filename} 没有分类!")print("文件分类完成!")

2. 自动化定时任务

2.1 使用 schedule 库定时执行任务

schedule 是一个 Python 库,专门用于调度定时任务。你可以使用它来设置定时执行的任务。

import schedule
import time# 定义要执行的任务
def job():print("任务开始执行!")# 每隔 10 秒执行一次任务
schedule.every(10).seconds.do(job)# 持续运行任务
while True:schedule.run_pending()time.sleep(1)
2.2 使用 APScheduler 执行复杂定时任务

APScheduler 是一个功能更强大的调度任务库,支持多种调度方式。

from apscheduler.schedulers.blocking import BlockingScheduler
import datetime# 定义要执行的任务
def print_time():print(f"当前时间:{datetime.datetime.now()}")# 创建调度器
scheduler = BlockingScheduler()# 添加任务,定时每分钟执行
scheduler.add_job(print_time, 'interval', minutes=1)# 启动调度器
scheduler.start()

3. 自动化发送邮件

使用 smtplib 库,可以自动化发送邮件,比如定时向客户或团队成员发送报告。

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipartdef send_email(subject, body, to_email):from_email = "your_email@gmail.com"password = "your_password"# 设置邮件内容msg = MIMEMultipart()msg['From'] = from_emailmsg['To'] = to_emailmsg['Subject'] = subjectmsg.attach(MIMEText(body, 'plain'))# 发送邮件try:server = smtplib.SMTP('smtp.gmail.com', 587)server.starttls()server.login(from_email, password)text = msg.as_string()server.sendmail(from_email, to_email, text)server.quit()print("邮件发送成功!")except Exception as e:print(f"邮件发送失败:{e}")# 调用函数发送邮件
send_email("自动化报告", "这是自动化发送的邮件内容", "recipient_email@example.com")

4. 自动化网络爬虫

使用 requestsBeautifulSoup 库,可以自动化爬取网页内容,并将其存储到文件中。

import requests
from bs4 import BeautifulSoup# 定义爬取目标网址
url = "https://example.com"# 发送 HTTP 请求获取网页内容
response = requests.get(url)# 解析网页内容
soup = BeautifulSoup(response.text, 'html.parser')# 获取页面标题
title = soup.title.string# 打印标题
print(f"网页标题: {title}")

5. 自动化数据处理

5.1 使用 Pandas 库处理数据

如果你经常需要处理 CSV 文件或 Excel 文件,可以使用 Pandas 库来实现数据的读取、处理和导出。

import pandas as pd# 读取 CSV 文件
df = pd.read_csv('data.csv')# 进行数据处理(例如:筛选大于 100 的值)
df_filtered = df[df['column_name'] > 100]# 保存处理后的数据到新的 CSV 文件
df_filtered.to_csv('filtered_data.csv', index=False)print("数据处理完成!")
5.2 定时备份数据库

可以通过 Python 脚本定时备份数据库,减少人工干预。

import mysql.connector
import datetime
import osdef backup_database():# 数据库连接配置db = mysql.connector.connect(host="localhost",user="your_user",password="your_password",database="your_database")# 创建备份文件名backup_filename = f"backup_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}.sql"# 使用 mysqldump 进行备份os.system(f"mysqldump -u your_user -p'your_password' your_database > {backup_filename}")print(f"数据库备份完成!备份文件: {backup_filename}")# 定时备份
backup_database()

6. 自动化图像处理

如果你需要自动处理图像文件(例如,批量调整大小、转换格式等),可以使用 Pillow 库。

from PIL import Image
import os# 设置图像目录
image_directory = 'C:/path/to/your/images'# 获取所有图像文件
files = os.listdir(image_directory)# 批量调整图像大小
for filename in files:if filename.endswith('.jpg'):image_path = os.path.join(image_directory, filename)with Image.open(image_path) as img:img = img.resize((800, 600))  # 调整大小为 800x600img.save(os.path.join(image_directory, f"resized_{filename}"))print("图像处理完成!")

7. 自动化 Web 操作

如果你需要自动化与网页的交互,可以使用 Selenium 来模拟浏览器操作。

from selenium import webdriver# 设置 WebDriver
driver = webdriver.Chrome(executable_path="path/to/chromedriver")# 打开网页
driver.get("https://example.com")# 查找并点击一个按钮
button = driver.find_element_by_xpath("//button[@id='submit']")
button.click()# 获取网页内容
page_content = driver.page_source
print(page_content)# 关闭浏览器
driver.quit()

总结

使用 Python 自动化日常任务可以极大地提高效率并减少重复性工作。通过 Python 中的各种库(如 osshutilschedulesmtplibrequestspandasPillow 等),你可以轻松实现文件管理、定时任务、邮件发送、网页爬取、数据处理等多种自动化任务。

相关文章:

用 Python 自动化处理日常任务

💖 欢迎来到我的博客! 非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长…...

《深入浅出HTTPS​​​​​​​​​​​​​​​​​》读书笔记(28):DSA数字签名

《深入浅出HTTPS​​​​​​​​​​》读书笔记(28):DSA数字签名 对称加密算法有很多算法,标准算法是RSA机密算法,数字签名技术也有一个标准DSS(Digital Signature Standard),其标准…...

type 属性的用途和实现方式(图标,表单,数据可视化,自定义组件)

1.图标类型 <uni-icon>组件中&#xff0c;type可以用来指定图标的不同样式。 <uni-icons type"circle" size"30" color"#007aff"></uni-icons> //表示圆形 <uni-icons type"square" size"30" co…...

PSINS工具箱学习(四)捷联惯导更新算法

原始 Markdown文档、Visio流程图、XMind思维导图见:https://github.com/LiZhengXiao99/Navigation-Learning 文章目录 一、捷联惯导更新1、insinit():初始化 ins 结构体2、ethupdate():地球自转角速度和牵连角速度更新3、insupdate():捷联惯导更新1. 速度更新2. 位置更新3.…...

P1Linux和Docker常用终端命令:保姆级图文详解

文章目录 前言1、Docker 常用命令1.1、镜像管理1.2、容器管理1.3、网络管理1.4、数据卷管理1.5、监控和性能管理 2、Linux 常用命令分类2.1、文件和目录管理2.2、用户管理2.3、系统监控和性能2.4、软件包管理2.5、网络管理 前言 亲爱的家人们&#xff0c;创作很不容易&#xf…...

Windows重装后NI板卡LabVIEW恢复正常

在重新安装Windows系统后&#xff0c;NI&#xff08;National Instruments&#xff09;板卡能够恢复正常工作&#xff0c;通常是由于操作系统的重新配置解决了之前存在的硬件驱动、兼容性或配置问题。操作系统重装后&#xff0c;系统重新加载驱动程序、清理了潜在的冲突或损坏的…...

深度解析统计学四大分布:Z、卡方、t 与 F 的关联与应用

统计学关键分布&#xff1a;Z、卡方、t、F 的关系探秘与应用指南 A/B实验系列相关文章&#xff08;置顶&#xff09; 1. A/B实验之置信检验&#xff08;一&#xff09;&#xff1a;如何避免误判和漏报 2. A/B实验之置信检验&#xff08;二&#xff09;&#xff1a;置信检验精要…...

zkServer.sh脚本

Apache ZooKeeper 几种常见的方法&#xff1a; 一、使用 zkServer.sh 脚本&#xff1a; 最常见的启动 ZooKeeper 的方式是使用提供的 zkServer.sh 脚本。此脚本可用于管理 ZooKeeper 进程。以下是一些示例命令&#xff1a; 1. 在前台启动 ZooKeeper&#xff1a; ./zkServer.s…...

CV(10)--目标检测

前言 仅记录学习过程&#xff0c;有问题欢迎讨论 目标检测 object detection&#xff0c;就是在给定的图片中精确找到物体所在位置&#xff0c;并标注出物体的类别;输出的是分类类别label物体的外框&#xff08;x, y, width, height&#xff09;。 目标检测算法&#xff1a…...

UML系列之Rational Rose笔记七:状态图

一、新建状态图 依旧是新建statechart diagram&#xff1b; 二、工作台介绍 接着就是一个状态的开始&#xff1a;开始黑点依旧可以从左边进行拖动放置&#xff1a; 这就是状态的开始&#xff0c;和活动图泳道图是一样的&#xff1b;只能有一个开始&#xff0c;但是可以有多个…...

C++单例模式的设计

单例模式&#xff08;Singleton Pattern&#xff09;是一种设计模式&#xff0c;用于确保一个类只有一个实例&#xff0c;并提供一个全局访问点来访问该实例。在C中&#xff0c;单例模式通常用于管理全局资源或共享状态。 以下是C中实现单例模式的几种常见方式&#xff1a; 懒…...

基于springboot的自习室预订系统

作者&#xff1a;学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等 文末获取“源码数据库万字文档PPT”&#xff0c;支持远程部署调试、运行安装。 项目包含&#xff1a; 完整源码数据库功能演示视频万字文档PPT 项目编码&#xff1…...

shell笔记

1.使用 ls -l 及 find 查找某个或者多个目录文件数量时 单个目录&#xff1a; find 目录 -type f|wc -l与 ls -l 目录|grep -v total|wc -l 一致 多个目录&#xff1a;如上结果不一致&#xff0c;因为 ls -l 在算多目录时&#xff0c;会将多目录及空格打出算作额外行 find 更精…...

《鸿蒙Next微内核:解锁人工智能决策树并行计算的加速密码》

在当今人工智能飞速发展的时代&#xff0c;提升运算速度是推动其进步的关键。鸿蒙Next以其独特的微内核特性&#xff0c;为设计决策树的并行计算框架提供了新的思路和契机。 鸿蒙Next微内核特性概述 鸿蒙Next的微内核架构将核心功能模块化&#xff0c;仅保留进程管理、内存管…...

AI刷题-最大矩形面积问题、小M的数组变换

目录 一、最大矩形面积问题 问题描述 输入格式 输出格式 输入样例 输出样例 数据范围 解题思路&#xff1a; 问题理解 数据结构选择 算法步骤 最终代码&#xff1a; 运行结果&#xff1a; 二、小M的数组变换 问题描述 测试样例 解题思路&#xff1a; 问题…...

Redis集群部署详解:主从复制、Sentinel哨兵模式与Cluster集群的工作原理与配置

集群部署形式 1、主从复制1.1 工作机制1.2 配置实现1.3 优缺点1.4 部署形式1.5 主从复制优化 2、Sentinel 哨兵模式2.1 工作机制2.2 配置实现2.3 优缺点2.4 哨兵机制选举流程2.5 脑裂问题解决方案 3、Redis Cluster3.1 工作机制3.2 配置实现3.3 优缺点3.4 故障转移3.5 哈希槽为…...

LeetCode热题100(三十四) —— 23.合并K个升序链表

LeetCode热题100&#xff08;三十四&#xff09; —— 23.合并K个升序链表 题目描述代码实现思路一&#xff1a;选择排序(199ms)思路二&#xff1a;归并排序(2ms) 思路解析 你好&#xff0c;我是杨十一&#xff0c;一名热爱健身的程序员在Coding的征程中&#xff0c;不断探索与…...

kalilinux - 目录扫描之dirsearch

情景导入 先简单介绍一下dirsearch有啥用。 假如你现在访问一个网站&#xff0c;例如https://www.example.com/ 它是一个电商平台或者其他功能性质的平台。 站在开发者的角度上思考&#xff0c;我们只指导https://www.example.com/ 但不知道它下面有什么文件&#xff0c;文…...

浅谈云计算04 | 云基础设施机制

探秘云基础设施机制&#xff1a;云计算的基石 一、云基础设施 —— 云计算的根基![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1fb7ff493d3c4a1a87f539742a4f57a5.png)二、核心机制之网络&#xff1a;连接云的桥梁&#xff08;一&#xff09;虚拟网络边界&#xff…...

文件上传 分片上传

分片上传则是将一个大文件分割成多个小块分别上传&#xff0c;最后再由服务器合并成完整的文件。这种做法的好处是可以并行处理多个小文件&#xff0c;提高上传效率&#xff1b;同时&#xff0c;如果某一部分上传失败&#xff0c;只需要重传这一部分&#xff0c;不影响其他部分…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制

目录 节点的功能承载层&#xff08;GATT/Adv&#xff09;局限性&#xff1a; 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能&#xff0c;如 Configuration …...