💖 欢迎来到我的博客! 非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长。
🔍 博客内容包括:
- 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 批量重命名文件](#1.1 批量重命名文件)
[1.2 自动分类文件](#1.2 自动分类文件)
[2. 自动化定时任务](#2. 自动化定时任务)
[2.1 使用 schedule 库定时执行任务](#2.1 使用 schedule 库定时执行任务)
[2.2 使用 APScheduler 执行复杂定时任务](#2.2 使用 APScheduler 执行复杂定时任务)
[3. 自动化发送邮件](#3. 自动化发送邮件)
[4. 自动化网络爬虫](#4. 自动化网络爬虫)
[5. 自动化数据处理](#5. 自动化数据处理)
[5.1 使用 Pandas 库处理数据](#5.1 使用 Pandas 库处理数据)
[5.2 定时备份数据库](#5.2 定时备份数据库)
[6. 自动化图像处理](#6. 自动化图像处理)
[7. 自动化 Web 操作](#7. 自动化 Web 操作)
1. 自动化文件管理
1.1 批量重命名文件
假设你有一批文件,文件名需要按一定规则批量修改,可以使用 os
和 re
库来实现。
python
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 自动分类文件
根据文件扩展名自动将文件分类到不同的文件夹中。
java
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 = False
for 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 = True
break
if not moved:
print(f"文件 {filename} 没有分类!")
print("文件分类完成!")
2. 自动化定时任务
2.1 使用 schedule
库定时执行任务
schedule
是一个 Python 库,专门用于调度定时任务。你可以使用它来设置定时执行的任务。
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
是一个功能更强大的调度任务库,支持多种调度方式。
python
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
库,可以自动化发送邮件,比如定时向客户或团队成员发送报告。
python
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
def send_email(subject, body, to_email):
from_email = "your_email@gmail.com"
password = "your_password"
# 设置邮件内容
msg = MIMEMultipart()
msg['From'] = from_email
msg['To'] = to_email
msg['Subject'] = subject
msg.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. 自动化网络爬虫
使用 requests
和 BeautifulSoup
库,可以自动化爬取网页内容,并将其存储到文件中。
python
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
库来实现数据的读取、处理和导出。
python
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 脚本定时备份数据库,减少人工干预。
python
import mysql.connector
import datetime
import os
def 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
库。
python
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)) # 调整大小为 800x600
img.save(os.path.join(image_directory, f"resized_{filename}"))
print("图像处理完成!")
7. 自动化 Web 操作
如果你需要自动化与网页的交互,可以使用 Selenium
来模拟浏览器操作。
python
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 中的各种库(如 os
、shutil
、schedule
、smtplib
、requests
、pandas
、Pillow
等),你可以轻松实现文件管理、定时任务、邮件发送、网页爬取、数据处理等多种自动化任务。