Quantcast
Channel: 小蓝博客
Viewing all articles
Browse latest Browse all 3145

Python实用脚本精选合集

$
0
0

Python实用脚本精选合集 🐍

前言

Python以其简洁高效的特性,被广泛应用于数据分析、自动化、网络开发等领域。本文精选了一些实用的Python脚本,旨在帮助大家快速解决实际问题,提高工作效率。💡

一、批量重命名文件 📁

在处理大量文件时,手动重命名既耗时又容易出错。以下脚本可实现指定目录下文件的批量重命名。

import os

# 设置目标目录
directory = r'C:\Users\YourName\Documents\files'

# 遍历目录中的文件
for count, filename in enumerate(os.listdir(directory)):
    # 获取文件扩展名
    ext = os.path.splitext(filename)[1]
    # 新文件名
    new_name = f'document_{count}{ext}'
    # 重命名文件
    os.rename(os.path.join(directory, filename), os.path.join(directory, new_name))

解释

  • import os:引入操作系统接口模块,便于文件操作。
  • directory:指定需要批量重命名的文件夹路径。
  • os.listdir(directory):获取目录中的文件列表。
  • enumerate():为每个文件生成索引编号,方便命名。
  • os.path.splitext(filename)[1]:提取文件的扩展名。
  • new_name:按照 document_编号.扩展名的格式生成新文件名。
  • os.rename():将旧文件名重命名为新文件名。

二、快速查找大文件 🔍

硬盘空间不足时,找出占用大量空间的文件非常重要。以下脚本可在指定目录中查找大于100MB的文件。

import os

# 设置目标目录和文件大小阈值
directory = r'C:\'
size_threshold = 100 * 1024 * 1024  # 100MB

# 遍历目录
for root, dirs, files in os.walk(directory):
    for file in files:
        filepath = os.path.join(root, file)
        try:
            size = os.path.getsize(filepath)
            if size > size_threshold:
                print(f'文件:{filepath},大小:{size / (1024 * 1024):.2f} MB')
        except FileNotFoundError:
            pass

解释

  • os.walk(directory):递归遍历目录及其子目录。
  • os.path.getsize(filepath):获取文件大小(字节)。
  • size_threshold:设定文件大小的阈值,单位为字节。
  • if size > size_threshold:筛选出大于阈值的文件。
  • print():输出满足条件的文件路径和大小。

三、监控网站状态 🌐

定期监控网站的可用性,及时发现故障。以下脚本可检测网站状态,并在无法访问时发送提醒。

import requests
import smtplib
from email.mime.text import MIMEText

# 网站URL和邮箱配置
url = 'https://www.example.com'
smtp_server = 'smtp.example.com'
smtp_port = 587
username = 'your_email@example.com'
password = 'your_password'
recipient = 'admin@example.com'

try:
    response = requests.get(url, timeout=5)
    if response.status_code != 200:
        raise Exception('Status code not 200')
except Exception as e:
    # 邮件内容
    msg = MIMEText(f'网站无法访问:{e}', 'plain', 'utf-8')
    msg['Subject'] = '网站监控报警'
    msg['From'] = username
    msg['To'] = recipient

    # 发送邮件
    server = smtplib.SMTP(smtp_server, smtp_port)
    server.starttls()
    server.login(username, password)
    server.sendmail(msg['From'], [msg['To']], msg.as_string())
    server.quit()

解释

  • requests.get(url, timeout=5):尝试访问网站,超时时间5秒。
  • if response.status_code != 200:检查HTTP响应状态码。
  • smtplib相关代码:当网站不可访问时,发送报警邮件。

四、Excel数据批量处理 📊

在数据分析中,经常需要处理大量Excel文件。以下脚本可合并指定目录下的所有Excel文件。

import pandas as pd
import os

# 设置目标目录
directory = r'C:\Users\YourName\Documents\excels'

# 初始化空的DataFrame
combined_df = pd.DataFrame()

# 遍历目录中的Excel文件
for filename in os.listdir(directory):
    if filename.endswith('.xlsx') or filename.endswith('.xls'):
        filepath = os.path.join(directory, filename)
        df = pd.read_excel(filepath)
        combined_df = combined_df.append(df, ignore_index=True)

# 将合并后的数据保存为新的Excel文件
combined_df.to_excel('combined_data.xlsx', index=False)

解释

  • import pandas as pd:导入Pandas库,便于数据处理。
  • combined_df = pd.DataFrame():创建一个空的DataFrame用于存放合并数据。
  • df = pd.read_excel(filepath):读取每个Excel文件的数据。
  • combined_df.append(df, ignore_index=True):将数据追加到合并的DataFrame中。
  • to_excel():将最终的数据导出为Excel文件。

五、自动整理下载文件夹 📂

下载文件夹经常堆积各种文件,以下脚本可根据文件类型自动分类整理。

import os
import shutil

# 下载文件夹路径
download_dir = r'C:\Users\YourName\Downloads'

# 文件类型对应的文件夹
file_types = {
    '.jpg': 'Images',
    '.png': 'Images',
    '.pdf': 'Documents',
    '.docx': 'Documents',
    '.xlsx': 'Documents',
    '.mp4': 'Videos',
    '.mp3': 'Music',
}

# 遍历下载文件夹
for filename in os.listdir(download_dir):
    filepath = os.path.join(download_dir, filename)
    if os.path.isfile(filepath):
        ext = os.path.splitext(filename)[1].lower()
        if ext in file_types:
            folder_name = file_types[ext]
            target_folder = os.path.join(download_dir, folder_name)
            os.makedirs(target_folder, exist_ok=True)
            shutil.move(filepath, target_folder)

解释

  • shutil:导入高级文件操作模块。
  • file_types:定义文件扩展名与目标文件夹的映射关系。
  • os.makedirs(target_folder, exist_ok=True):创建目标文件夹,若已存在则忽略。
  • shutil.move():将文件移动到对应的文件夹。

六、工作流程图 📈

graph TD
A[开始] --> B[批量重命名文件]
A --> C[查找大文件]
A --> D[监控网站状态]
A --> E[合并Excel数据]
A --> F[整理下载文件夹]
B --> G[任务完成]
C --> G
D --> G
E --> G
F --> G

七、重要提示 ⚠️

  • 依赖库安装:请确保已安装requestspandassmtplib等库,可使用 pip install命令进行安装。
  • 路径设置:脚本中的目录路径需根据实际情况进行修改。
  • 权限问题:某些操作可能需要管理员权限,请注意运行环境。
  • 邮箱配置:使用邮件功能时,请确保SMTP服务器信息和账号密码填写正确,并注意邮箱安全设置。

八、结语 🎉

以上是精选的Python实用脚本合集,涵盖了文件操作、数据处理、网络监控等常见需求。希望这些脚本能为您的工作带来便利,助力效率提升。🚀



Viewing all articles
Browse latest Browse all 3145

Trending Articles