用 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 批量重命名文件](#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 批量重命名文件

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

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. 自动化网络爬虫

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

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

相关推荐
利刃大大33 分钟前
【C语言】内存函数详解与模拟实现
c语言·开发语言
siy23331 小时前
[c语言日寄]精英怪:三子棋(tic-tac-toe)3命慢通[附免费源码]
c语言·开发语言·笔记·学习·算法
疯狂的沙粒1 小时前
如何将一个数组转换为字符串?
开发语言·前端·javascript·柔性数组
shix .1 小时前
python范围
开发语言·python
源之缘-OFD先行者1 小时前
FreeType 介绍及 C# 示例
开发语言·c#
惊鸿一梦q1 小时前
qt5Core.dll是什么文件,qt5Core.dll错误怎么办
开发语言·qt
此星光明2 小时前
GEE初学者的福音:我的新书发布《生态地理遥感云计算》
javascript·python·云计算·生态·遥感·gee·地理
程序员buddha2 小时前
华为OD上机考试真题(Java)——最长方连续方波信号
java·开发语言·华为od
CodeClimb2 小时前
【华为OD-E卷 - 整数编码 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od