用 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 等),你可以轻松实现文件管理、定时任务、邮件发送、网页爬取、数据处理等多种自动化任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/892931.shtml

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

相关文章

java day04-面向对象基础(内存 封装 继承 修饰符 工具类 )

1.对象内存图 1.1 Java 内存分配 1.2 堆和栈 栈:所有局部变量都会在栈内存中创建 局部变量:定义在方法中的变量或者方法声明上的变量 方法执行都会加载到栈中进行 -----------------------------------------------------------------------------------------…

Qt/C++进程间通信:QSharedMemory 使用详解(附演示Demo)

在开发跨进程应用程序时,进程间通信(IPC)是一个关键问题。Qt 框架提供了多种 IPC 技术,其中 QSharedMemory 是一种高效的共享内存方式,可以实现多个进程之间快速交换数据。本文将详细讲解 QSharedMemory 的概念、用法及…

从前端视角看设计模式之创建型模式篇

设计模式简介 "设计模式"源于GOF(四人帮)合著出版的《设计模式:可复用的面向对象软件元素》,该书第一次完整科普了软件开发中设计模式的概念,他们提出的设计模式主要是基于以下的面向对象设计原则&#xff…

Pandas数据合并:concat与merge

目录 一、concat方法 1. 基本语法 2. 示例 示例1:按行合并(垂直方向) 示例2:按列合并(水平方向) 示例3:使用joininner进行内连接 示例4:处理列名冲突 二、merge方法 1. 基本…

docker的数据卷与dockerfile自定义镜像

docker的数据卷与dockerfile自定义镜像 一. docker的数据卷数据卷容器 二. dockerfile自定义镜像2.1 dockerfile的命令格式镜像的操作命令add和copy的区别 容器启动的命令 2.2 run命令2.3 其它端口映射 三. 练习 一. docker的数据卷 容器于宿主机之间,或者容器和容…

【大数据】机器学习 -----关于data.csv数据集分析案例

打开表 import pandas as pd df2 pd.read_csv("data.csv",encoding"gbk") df2.head()查看数据属性(列标题,表形状,类型,行标题,值) print("列标题:",df2.columns)Data…

开发规范

开发规范 企业项目开发有2种开发模式:前后台混合开发和前后台分离开发。 前后台混合开发 顾名思义就是前台后台代码混在一起开发,如下图所示: 这种开发模式有如下缺点: 沟通成本高:后台人员发现前端有问题&#xf…

【Mysql进阶知识】从.SQL文件中执行SQL语句

目录 方法一:使用source命令导入 方法二:使用mysql客户端导入 方法一:使用source命令导入 有时候我们需要从 SQL 文件执行一些 SQL 语句,比如要把一个数据库从一台服务器 A 复制到另一台服务器 B 上,那么可以先从服务…

springMVC---resultful风格

目录 一、创建项目 pom.xml 二、配置文件 1.web.xml 2.spring-mvc.xml 三、图解 四、controller 一、创建项目 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi…

RustDesk ID更新脚本

RustDesk ID更新脚本 此PowerShell脚本自动更新RustDesk ID和密码&#xff0c;并将信息安全地存储在Bitwarden中。 特点 使用以下选项更新RustDesk ID&#xff1a; 使用系统主机名生成一个随机的9位数输入自定义值 为RustDesk生成新的随机密码将RustDesk ID和密码安全地存储…

告别 Excel,拥抱 R 语言:开启数据分析新时代

在这个数据驱动的时代&#xff0c;数据分析已然成为每个行业的核心竞争力。从市场营销到金融领域&#xff0c;从医疗健康到教育行业&#xff0c;数据无处不在&#xff0c;深刻影响着每一个决策。然而&#xff0c;面对日益复杂的数据集&#xff0c;单纯依靠 Excel 进行分析&…

LabVIEW驱动电机实现样品自动搜索

利用LabVIEW控制电机驱动相机在XY平面上进行扫描&#xff0c;以检测样品位置。样品最初可能位于相机视野范围之外&#xff0c;需要实现自动搜索样品位置并完成精确定位扫描的功能。该系统需具有以下特点&#xff1a; 高效搜索&#xff1a;能够快速确定样品位置&#xff0c;缩短…

【C语言】_字符串拷贝函数strcpy

目录 1. 函数声明及功能 2. 使用示例 3. 注意事项 4. 模拟实现 4.1 第一版&#xff1a;基本功能判空const修饰 4.2 第二版&#xff1a;优化对于\0的单独拷贝 4.3 第三版&#xff1a;仿strcpy的char*返回值 1. 函数声明及功能 char * strcpy ( char * destination, cons…

大模型WebUI:Gradio全解11——Chatbots:融合大模型的多模态聊天机器人(3)

大模型WebUI&#xff1a;Gradio全解11——Chatbot&#xff1a;融合大模型的多模态聊天机器人&#xff08;3&#xff09; 前言本篇摘要11. Chatbot&#xff1a;融合大模型的多模态聊天机器人11.3 组件Chatbot及ChatMessage11.3.1 Chatbot&#xff1a;聊天机器人组件1. API参数2.…

细说STM32F407单片机窗口看门狗WWDG的原理及使用方法

目录 一、窗口看门狗的工作原理 1、递减计数器 2、窗口值和比较器 3、看门狗的启动 4、提前唤醒中断 二、窗口看门狗的HAL驱动程序 1、窗口看门狗初始化 2.窗口看门狗刷新 3.EWI中断及其处理 三、不开启EWI的WWDG示例 1、示例功能 2、项目设置 &#xff08;1&…

Docker部署Spring Boot + Vue项目

目录 前提条件 概述 下载代码 打开代码 Docker创建网络 MySQL容器准备 MySQL数据库配置 启动MySQL容器 测试连接MySQL 初始化MySQL数据 Redis容器准备 修改Redis配置 启动redis容器 部署后端 后端代码打包 上传jar包到Linux 创建Dockerfile 构建镜像 运行后…

基于Oracle与PyQt6的电子病历多模态大模型图形化查询系统编程构建

一、引言 1.1 研究背景阐述 在当今数字化时代,医疗行业正经历着深刻的变革,数字化转型的需求日益迫切。电子病历(EMR)作为医疗信息化的核心,其管理的高效性和数据利用的深度对于提升医疗服务质量、优化临床决策以及推动医学研究具有至关重要的意义。传统的电子病历管理系…

万字长文介绍ARINC 653,以及在综合模块化航空电子设备(IMA)中的作用

文章目录 一、引言二、ARINC 653背景三、整体系统架构四、应用/执行&#xff08;APEX&#xff09;接口五、ARINC 653 RTOS内部机制六、健康监测功能七、软件应用八、ARINC 653现状九、总结 一、引言 在现代航空领域&#xff0c;综合模块化航空电子设备&#xff08;IMA&#xf…

在eNSp上telnet一下吧

在上篇博客&#xff1a;DNS 我们提到了telnet和设备带外管理、带内管理&#xff0c;它确实是非常有趣的一个知识点哦&#xff0c;接下来我们一起来学习学习吧~ Telnet&#xff08;远程登陆协议&#xff09; Telnet基于TCP 23号端口&#xff0c;典型的C/S架构模式&#xff0c;是…

音频语言模型与多模态体系结构

音频语言模型与多模态体系结构 多模态模型正在创造语言、视觉和语音等以前独立的研究领域的协同效应。这些模型使用通用架构,将每种模式视为不同的“token”,使它们能够以一种与人类认知非常相似的方式联合建模和理解世界。 ​ ​可以将多模态分为两个主要领域:输入空间(…