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
七、重要提示 ⚠️
- 依赖库安装:请确保已安装requests、pandas、smtplib等库,可使用
pip install
命令进行安装。 - 路径设置:脚本中的目录路径需根据实际情况进行修改。
- 权限问题:某些操作可能需要管理员权限,请注意运行环境。
- 邮箱配置:使用邮件功能时,请确保SMTP服务器信息和账号密码填写正确,并注意邮箱安全设置。
八、结语 🎉
以上是精选的Python实用脚本合集,涵盖了文件操作、数据处理、网络监控等常见需求。希望这些脚本能为您的工作带来便利,助力效率提升。🚀