当前位置: 首页 > news >正文

实用的 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&#xff0…...

安装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系统工作原理…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

django filter 统计数量 按属性去重

在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅

目录 前言 操作系统与驱动程序 是什么&#xff0c;为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中&#xff0c;我们在使用电子设备时&#xff0c;我们所输入执行的每一条指令最终大多都会作用到硬件上&#xff0c;比如下载一款软件最终会下载到硬盘上&am…...

十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建

【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...