创建自动化脚本可以极大地提高工作效率,减少重复劳动。下面,我将为你介绍12个常见的Python自动化脚本,每个脚本都附有简要说明和示例代码。这些脚本涵盖从文件处理到网络请求,再到系统管理的多个方面。

👉CSDN大礼包:《python安装工具&全套学习资料》免费分享(安全链接,放心点击)

1. 自动化文件备份

说明:将指定文件夹中的文件备份到另一个文件夹。

import shutil
import os
import time
 
source_dir = "/path/to/source"
destination_dir = "/path/to/destination"
 
def backup_files():
    if not os.path.exists(destination_dir):
        os.makedirs(destination_dir)
    for filename in os.listdir(source_dir):
        shutil.copy(os.path.join(source_dir, filename), os.path.join(destination_dir, filename))
    print(f"Backup completed at {time.strftime('%Y-%m-%d %H:%M:%S')}")
 
if __name__ == "__main__":
    backup_files()

2. 自动化邮件发送

说明:使用SMTP协议发送邮件。

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
 
def send_email(subject, body, to_email):
    msg = MIMEMultipart()
    msg['From'] = "your_email@example.com"
    msg['To'] = to_email
    msg['Subject'] = subject
 
    msg.attach(MIMEText(body, 'plain'))
 
    server = smtplib.SMTP('smtp.example.com', 587)
    server.starttls()
    server.login("your_email@example.com", "your_password")
    text = msg.as_string()
    server.sendmail("your_email@example.com", to_email, text)
    server.quit()
 
if __name__ == "__main__":
    send_email("Test Subject", "This is a test email.", "recipient@example.com")

3. 自动化数据抓取(网页爬虫)

说明:抓取网页内容并解析。

import requests
from bs4 import BeautifulSoup
 
def fetch_webpage(url):
    response = requests.get(url)
    return response.text
 
def parse_webpage(html_content):
    soup = BeautifulSoup(html_content, 'html.parser')
    # Example: getting all titles
    titles = [title.get_text() for title in soup.find_all('h1')]
    return titles
 
if __name__ == "__main__":
    url = "https://example.com"
    html_content = fetch_webpage(url)
    titles = parse_webpage(html_content)
    print(titles)

4. 自动化Excel处理

说明:使用openpyxl库读取和写入Excel文件。

from openpyxl import load_workbook, Workbook
 
def read_excel(file_path, sheet_name):
    wb = load_workbook(file_path)
    sheet = wb[sheet_name]
    data = []
    for row in sheet.iter_rows(values_only=True):
        data.append(row)
    return data
 
def write_excel(file_path, sheet_name, data):
    wb = Workbook()
    ws = wb.active
    ws.title = sheet_name
    for row in data:
        ws.append(row)
    wb.save(file_path)
 
if __name__ == "__main__":
    read_data = read_excel("example.xlsx", "Sheet1")
    print(read_data)
    write_excel("output.xlsx", "Sheet1", read_data)

5. 自动化日志处理

说明:读取和分析日志文件。

import re
 
def read_log_file(file_path):
    with open(file_path, 'r') as file:
        logs = file.readlines()
    return logs
 
def extract_errors(logs):
    error_pattern = re.compile(r"ERROR")
    errors = [log for log in logs if error_pattern.search(log)]
    return errors
 
if __name__ == "__main__":
    logs = read_log_file("application.log")
    errors = extract_errors(logs)
    for error in errors:
        print(error.strip())

6. 自动化图片处理

说明:使用Pillow库调整图片大小。

from PIL import Image
 
def resize_image(input_path, output_path, size):
    with Image.open(input_path) as img:
        img_resized = img.resize(size, Image.ANTIALIAS)
        img_resized.save(output_path)
 
if __name__ == "__main__":
    resize_image("input.jpg", "output.jpg", (800, 600))

7. 自动化系统监控

说明:使用psutil库监控CPU和内存使用情况。

import psutil
import time
 
def monitor_system():
    while True:
        cpu_usage = psutil.cpu_percent(interval=1)
        memory_info = psutil.virtual_memory()
        memory_usage = memory_info.percent
        print(f"CPU Usage: {cpu_usage}% | Memory Usage: {memory_usage}%")
        time.sleep(5)
 
if __name__ == "__main__":
    monitor_system()

8. 自动化PDF处理

说明:使用PyMuPDF库提取PDF文本。

import fitz  # PyMuPDF
 
def extract_text_from_pdf(file_path):
    doc = fitz.open(file_path)
    text = ""
    for page_num in range(doc.page_count):
        page = doc.load_page(page_num)
        text += page.get_text()
    return text
 
if __name__ == "__main__":
    pdf_text = extract_text_from_pdf("example.pdf")
    print(pdf_text)

9. 自动化API请求

说明:使用requests库发送GET和POST请求。

import requests
 
def get_api_data(url, params=None):
    response = requests.get(url, params=params)
    return response.json()
 
def post_api_data(url, data):
    response = requests.post(url, json=data)
    return response.json()
 
if __name__ == "__main__":
    url = "https://api.example.com/data"
    params = {"key1": "value1", "key2": "value2"}
    data = {"field1": "value1", "field2": "value2"}
    
    get_response = get_api_data(url, params)
    print(get_response)
    
    post_response = post_api_data(url, data)
    print(post_response)

10. 自动化任务调度

说明:使用schedule库安排定时任务。

import schedule
import time
 
def job():
    print("Task executed!")
 
schedule.every(10).seconds.do(job)
 
if __name__ == "__main__":
    while True:
        schedule.run_pending()
        time.sleep(1)

11. 自动化文件压缩

说明:使用zipfile库压缩文件夹。

import zipfile
import os
 
def zip_folder(folder_path, output_path):
    with zipfile.ZipFile(output_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
        for root, dirs, files in os.walk(folder_path):
            for file in files:
                full_path = os.path.join(root, file)
                relative_path = os.path.relpath(full_path, folder_path)
                zipf.write(full_path, relative_path)
 
if __name__ == "__main__":
    zip_folder("/path/to/folder", "output.zip")

最后这里免费分享给大家一份Python全台学习资料,包含视频、源码。课件,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。

​​在这里插入图片描述

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、自动化测试带你从零基础系统性的学好Python!

👉CSDN大礼包:《python安装工具&全套学习资料》免费分享(安全链接,放心点击)

👉Python学习大礼包👈

在这里插入图片描述

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐