实用的 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系统工作原理…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...
02.运算符
目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&:逻辑与 ||:逻辑或 !:逻辑非 短路求值 位运算符 按位与&: 按位或 | 按位取反~ …...
负载均衡器》》LVS、Nginx、HAproxy 区别
虚拟主机 先4,后7...
