实用的 Python 小脚本
一、引言
在日常办公和电脑使用中,我们经常会遇到一些重复性的任务或需要快速获取特定信息的情况。Python 作为一种强大而灵活的编程语言,可以用来编写各种小脚本,以自动化这些任务并提高工作效率。本文将介绍一些 Python 常用的小脚本,包括文件管理、数据处理、电脑信息查询等方面,帮助读者更好地利用 Python 解决实际问题。
二、文件管理脚本
(一)批量重命名文件
在处理大量文件时,手动重命名文件是一项繁琐的任务。使用 Python 可以轻松实现批量重命名文件。以下是一个示例脚本:
import osdef batch_rename(directory, prefix):for count, filename in enumerate(os.listdir(directory)):dst = f"{prefix}{str(count)}.txt"src = os.path.join(directory, filename)dst = os.path.join(directory, dst)os.rename(src, dst)directory = "path/to/your/directory"
prefix = "new_file_"
batch_rename(directory, prefix)
这个脚本遍历指定目录中的所有文件,并以给定的前缀和序号重命名它们。
(二)文件备份
定期备份重要文件是一个好习惯。以下是一个简单的文件备份脚本:
import shutil
import os
import timesource_directory = "path/to/source/directory"
backup_directory = "path/to/backup/directory"def backup_files():timestamp = time.strftime("%Y%m%d%H%M%S")backup_folder = os.path.join(backup_directory, f"backup_{timestamp}")os.makedirs(backup_folder)for filename in os.listdir(source_directory):source_file = os.path.join(source_directory, filename)destination_file = os.path.join(backup_folder, filename)shutil.copy2(source_file, destination_file)backup_files()
这个脚本将指定源目录中的文件备份到另一个目录,并在备份文件夹名称中添加时间戳。
三、数据处理脚本
(一)CSV 文件数据处理
假设你有一个 CSV 文件,需要对其中的数据进行一些处理,比如提取特定列的数据或进行数据清洗。以下是一个示例脚本:
import pandas as pddef process_csv(file_path):df = pd.read_csv(file_path)# 提取特定列的数据column_data = df["column_name"]# 进行数据清洗,例如去除空值cleaned_data = column_data.dropna()return cleaned_datafile_path = "path/to/your/csv/file.csv"
processed_data = process_csv(file_path)
print(processed_data)
这个脚本使用 pandas 库读取 CSV 文件,并进行特定的数据处理操作。
(二)文本文件内容统计
如果你需要统计一个文本文件中的单词数量、行数等信息,可以使用以下脚本:
def count_words_and_lines(file_path):with open(file_path, "r") as file:lines = file.readlines()word_count = 0for line in lines:words = line.split()word_count += len(words)return len(lines), word_countfile_path = "path/to/your/text/file.txt"
line_count, word_count = count_words_and_lines(file_path)
print(f"Lines: {line_count}, Words: {word_count}")
这个脚本打开一个文本文件,统计其中的行数和单词数量。
四、电脑信息查询脚本
(一)获取电脑硬件信息
可以使用 Python 的第三方库来获取电脑的硬件信息,比如 CPU 型号、内存大小等。以下是一个使用 psutil 库的示例:
import psutildef get_computer_info():cpu_info = psutil.cpu_freq()memory_info = psutil.virtual_memory()disk_info = psutil.disk_usage('/')print(f"CPU Frequency: {cpu_info.current} MHz")print(f"Memory Usage: {memory_info.used / (1024 * 1024 * 1024)} GB")print(f"Disk Usage: {disk_info.used / (1024 * 1024 * 1024)} GB")get_computer_info()
这个脚本使用 psutil 库获取电脑的 CPU 频率、内存使用情况和磁盘使用情况。
(二)查询电脑 IP 地址
以下是一个获取电脑 IP 地址的脚本:
import socketdef get_ip_address():hostname = socket.gethostname()ip_address = socket.gethostbyname(hostname)return ip_addressprint(get_ip_address())
这个脚本使用 socket 库获取电脑的 IP 地址。
五、日常办公辅助脚本
(一)自动发送邮件
在一些情况下,你可能需要自动发送邮件通知。以下是一个使用 smtplib 库发送邮件的示例:
import smtplib
from email.mime.text import MIMETextdef send_email(subject, body, to_email):from_email = "your_email@gmail.com"password = "your_password"msg = MIMEText(body)msg['Subject'] = subjectmsg['From'] = from_emailmsg['To'] = to_emailserver = smtplib.SMTP('smtp.gmail.com', 587)server.starttls()server.login(from_email, password)server.sendmail(from_email, to_email, msg.as_string())server.quit()subject = "Test Email"
body = "This is a test email sent from Python."
to_email = "recipient_email@gmail.com"
send_email(subject, body, to_email)
这个脚本使用 Gmail 的 SMTP 服务器发送一封邮件,你需要将自己的邮箱地址和密码替换到相应位置。
(二)定时提醒
如果你需要一个定时提醒工具,可以使用以下脚本:
import time
import winsounddef set_reminder(message, delay):time.sleep(delay)print(message)winsound.Beep(1000, 1000)message = "Time for a break!"
delay = 3600 # 设置提醒时间为 1 小时(3600 秒)
set_reminder(message, delay)
这个脚本在指定的延迟时间后打印提醒消息并发出蜂鸣声。
六、文件格式转换脚本
在日常工作中,我们可能需要将一种文件格式转换为另一种格式。例如,将图片从 JPEG 格式转换为 PNG 格式,或者将 PDF 文件转换为 Word 文档。以下是一个使用 Python 的第三方库 Pillow 进行图片格式转换的脚本:
from PIL import Imagedef convert_image_format(input_path, output_path, output_format):img = Image.open(input_path)img.save(output_path, format=output_format)input_path = "path/to/input/image.jpg"
output_path = "path/to/output/image.png"
output_format = "PNG"
convert_image_format(input_path, output_path, output_format)
这个脚本可以将指定的 JPEG 图片转换为 PNG 格式。你可以根据需要修改输入路径、输出路径和输出格式。
七、批量压缩图片脚本
当我们有大量的图片需要压缩以减小文件大小或节省存储空间时,可以使用以下脚本:
from PIL import Image
import osdef compress_images(directory, quality):for filename in os.listdir(directory):if filename.endswith(".jpg") or filename.endswith(".png"):img_path = os.path.join(directory, filename)img = Image.open(img_path)img.save(img_path, optimize=True, quality=quality)directory = "path/to/your/images/directory"
quality = 70 # 设置压缩质量,范围为 0-100
compress_images(directory, quality)
这个脚本遍历指定目录中的所有 JPEG 和 PNG 图片,并将它们压缩到指定的质量级别。
八、生成随机密码脚本
为了提高账户安全性,我们经常需要使用随机生成的强密码。以下是一个用 Python 生成随机密码的脚本:
import random
import stringdef generate_password(length):characters = string.ascii_letters + string.digits + string.punctuationpassword = ''.join(random.choice(characters) for i in range(length))return passwordlength = 12 # 设置密码长度
password = generate_password(length)
print(password)
这个脚本生成一个指定长度的随机密码,包含字母、数字和标点符号。
九、清理临时文件脚本
电脑中的临时文件会占用存储空间并可能影响系统性能。以下是一个清理特定目录中临时文件的脚本:
import osdef clean_temp_files(directory):for filename in os.listdir(directory):file_path = os.path.join(directory, filename)if os.path.isfile(file_path) and filename.startswith("temp_"):os.remove(file_path)directory = "path/to/temporary/files/directory"
clean_temp_files(directory)
这个脚本删除指定目录中以 “temp_” 开头的临时文件。
十、文本内容搜索与替换脚本
如果你需要在多个文本文件中搜索特定的内容并进行替换,可以使用以下脚本:
import osdef search_and_replace(directory, search_text, replace_text):for filename in os.listdir(directory):if filename.endswith(".txt"):file_path = os.path.join(directory, filename)with open(file_path, "r") as file:content = file.read()new_content = content.replace(search_text, replace_text)with open(file_path, "w") as file:file.write(new_content)directory = "path/to/your/text/files/directory"
search_text = "old_text"
replace_text = "new_text"
search_and_replace(directory, search_text, replace_text)
这个脚本遍历指定目录中的所有文本文件,将文件中的特定内容替换为新的内容。
十一、获取网页内容脚本
有时候我们需要从网页上获取特定的信息,比如新闻标题、股票价格等。以下是一个使用 Python 的 requests 和 BeautifulSoup 库获取网页内容的脚本:
import requests
from bs4 import BeautifulSoupdef get_webpage_content(url):response = requests.get(url)soup = BeautifulSoup(response.content, "html.parser")# 假设我们要获取网页中的所有标题标签titles = soup.find_all("h1")for title in titles:print(title.text)url = "https://example.com"
get_webpage_content(url)
这个脚本获取指定网页的内容,并打印出所有的一级标题。
十二、文件分类脚本
如果你的电脑中有很多杂乱无章的文件,可以使用以下脚本进行分类:
import os
import shutildef classify_files(directory):file_types = {}for filename in os.listdir(directory):file_path = os.path.join(directory, filename)if os.path.isfile(file_path):extension = os.path.splitext(filename)[1]if extension not in file_types:file_types[extension] = []file_types[extension].append(file_path)for extension, files in file_types.items():destination_folder = os.path.join(directory, extension[1:])os.makedirs(destination_folder, exist_ok=True)for file in files:shutil.move(file, destination_folder)directory = "path/to/your/files/directory"
classify_files(directory)
这个脚本根据文件的扩展名将文件分类到不同的文件夹中。
十三、总结
这些 Python 小脚本可以在日常办公和电脑管理中发挥很大的作用。它们不仅可以提高工作效率,还可以帮助我们更好地管理电脑资源和处理各种任务。你可以根据自己的具体需求对这些脚本进行修改和扩展,以满足不同的场景。同时,不断探索和学习更多的 Python 库和技术,可以让你编写出更加实用和强大的脚本。
相关文章:
实用的 Python 小脚本
一、引言 在日常办公和电脑使用中,我们经常会遇到一些重复性的任务或需要快速获取特定信息的情况。Python 作为一种强大而灵活的编程语言,可以用来编写各种小脚本,以自动化这些任务并提高工作效率。本文将介绍一些 Python 常用的小脚本&…...

哪种掏耳朵方式好?正确的掏耳工具!
人体的耳屎会随着活动量加大而增加,如果长期不清理,耳屎堆积在耳道深处很有可能会堵塞鼓膜甚至影响听力。但如果需要清理耳屎的话,哪种掏耳朵方式好呢?可视挖耳勺可以帮助我们在全程可视的情况下,精准有效地完成采耳&a…...
如何让别人喜欢你的代码
良好的编码习惯是编程人员的基本素养,有利于后期人员的维护和查看。 毕竟大家都喜欢美女和靓仔 目录 js函数注释规范 案例 其他 推荐链接 js函数注释规范 常用符号 说明 用法 param 参数 param {type} name return 返回值 return {type} 案例 /***…...
【Flutter】Dart:库
在 Dart 中,库(Library)是组织和重用代码的基本方式。通过库,我们可以将代码分割成模块化的部分,方便管理和共享,同时避免命名冲突。Dart 提供了大量内置库,用于支持常见的功能,比如…...

从0开始深度学习(18)——环境和分布偏移
有时,根据测试集的精度衡量,模型表现得非常出色。 但是当数据分布突然改变时,模型在部署中会出现灾难性的失败。 有时模型的部署本身就是扰乱数据分布的催化剂。 举一个有点荒谬却可能真实存在的例子。 假设我们训练了一个贷款申请人违约风险…...

Java项目-基于springboot框架的线上买菜系统项目实战(附源码+文档)
作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 开发运行环境 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/…...
API接口的未来趋势:智能化、自动化与集成化的发展
在当今数字化驱动的世界中,应用程序编程接口(API)已成为连接不同软件、平台和服务的关键桥梁。随着技术的不断进步,API接口的未来趋势将聚焦于智能化、自动化与集成化的发展。本文将深入探讨这些趋势,并分析其在推动数…...

Yolo系列 V1和V2的对比
在计算机视觉领域中,目标检测是一个核心问题,旨在识别图像中所有感兴趣的目标,并给出它们的类别和位置。近年来,随着深度学习技术的发展,目标检测领域取得了巨大的进步。Yolo(You Only Look Once࿰…...

安装vue发生异常: idealTree:nodejs: sill idealTree buildDeps
一、异常 C:\>npm install vue -g npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIREDnpm ERR! request to https://registry.npm.taobao.org/vue failed, reason: certificate has expired 二、原因 请求 https://registry.npm.taobao.org 失败,证…...

SQL基础练习
SQL语句的下载脚本链接!!! 【免费】SQL练习资源-具体练习操作可以查看我发布的文章资源-CSDN文库https://download.csdn.net/download/Z0412_J0103/89908378 1 查看所有数据库 SHOW DATABASES; 结果展示: 2 创建库 方法一&#…...

Python 如何处理大规模数据库表的迁移与数据迁移的高效执行
Python 如何处理大规模数据库表的迁移与数据迁移的高效执行 引言 在现代应用开发中,随着业务需求的增长,数据库表结构和数据往往需要进行迁移和更新。迁移(Migration)是指对数据库表的结构、数据类型、索引、约束等进行修改或更新…...
如何在 MySQL 中处理大量的 DELETE 操作
全文目录: 开篇语前言摘要简介概述DELETE 操作的基本概念常用的 DELETE 方法 核心源码解读简单 DELETE 语句批量 DELETE 示例 案例分析案例1:使用简单 DELETE 删除用户数据案例2:使用分批 DELETE 应用场景演示场景1:用户管理系统场…...

技嘉主板怎么开启TPM_技嘉主板开启TPM2.0教程
在win11最低要求是提示,电脑必须满足 TPM 2.0,并开需要开启TPM 才能正常安装windows11系统,有很多技嘉主板的用户问我,技嘉主板怎么开启tpm功能呢?下面小编就给大家详细介绍一下技嘉主板开启tpm功能的方法。 如何确认你…...
正在等待缓存锁:无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 5427(unattended-upgr)持有
这段信息表示你的系统正在等待一个锁文件 (/var/lib/dpkg/lock-frontend) 解除。锁文件用于防止多个进程同时修改系统的包管理器(apt 或 dpkg),避免冲突或损坏系统。 在这种情况下,进程 unattended-upgr(自动升级进程…...
js实现简单的【发布者-订阅者模式】
发布订阅模式是什么 发布订阅模式是一种代码的设计模式,它允许对象间进行松散耦合的通信。 发布者(Publishers)不会直接调用订阅者(Subscribers),相反,它们通过事件通道发布消息;订…...

java学习--集合(大写四.4)
4.collection子接口:List 4.1 List接口存储数据特点 List接口中存储数据的特点:用于存储有序\可以重复的数据. 可以使用List替代数组,动态数组 4.2List接口常用方法 4.2.1、第一波: Collection中声明的15个方法 4.2.2、第二波:因为List是…...

CSS3文本阴影、文本换行、文本溢出、文本修饰、文本描边的使用
1.文本阴影:text-shadow 2.文本换行: white-space:pre(可以理解为按原文显示) white-space:pre-wrap(不会超出父容器) 3.文本溢出 text-overflow:ellipsis一般配合文本…...
Python实现股票自动交易:步骤、要点与注意事项有哪些?
炒股自动化:申请官方API接口,散户也可以 python炒股自动化(0),申请券商API接口 python炒股自动化(1),量化交易接口区别 Python炒股自动化(2):获取…...
闪存----
闪存是一种非易失性存储设备,用于在电子设备中存储数据。使用固态电子存储技术,不含运动部件,因此具有更高的耐久性和更快的访问速度。闪存能够永久的保存数据,即使在断电的情况下也不会丢失。 闪存的速度主要得益于 非机械结构、…...

Spring Boot论坛网站:安全特性与性能优化
4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1系统工作原理…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...

热烈祝贺埃文科技正式加入可信数据空间发展联盟
2025年4月29日,在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上,可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞,强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...

密码学基础——SM4算法
博客主页:christine-rr-CSDN博客 专栏主页:密码学 📌 【今日更新】📌 对称密码算法——SM4 目录 一、国密SM系列算法概述 二、SM4算法 2.1算法背景 2.2算法特点 2.3 基本部件 2.3.1 S盒 2.3.2 非线性变换 编辑…...