实用的 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 库和技术,可以让你编写出更加实用和强大的脚本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/57340.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VSCode离线安装插件

下载最新的VSCode,安装。 打开VSCODE,打开左边的EXTENSINS(拓展),打开 Install from VSIX,找到 .vsix的文件,打开安装。完成。 1)去哪找插件,当然是插件官网了,插件官网,…

MySQL 之 存储引擎

存储引擎 MySQL体系结构 连接层:最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会安全接入的每个客户端验证它所具有的操作权限。服务层:第二层完成大多数的核心服务功能,如SQ…

12、论文阅读:SpikeYOLO:高性能低能耗目标检测网络

SpikeYOLO:高性能低能耗目标检测网络 前言解释介绍相关工作论文提出的方法网络输入SpikeYOLO架构概述网络输出宏观设计微观设计I-LIF脉冲神经元LIFI-LIF实验代码前言 脉冲神经网络(Spiking Neural Networks, SNNs)具有生物合理性和低功耗的优势,相较于人工神经网络(Artif…

Python实现股票自动交易:步骤、要点与注意事项有哪些?

炒股自动化:申请官方API接口,散户也可以 python炒股自动化(0),申请券商API接口 python炒股自动化(1),量化交易接口区别 Python炒股自动化(2):获取…

机器学习探索性数据分析 (EDA)

机器学习探索性数据分析 (EDA) 探索性数据分析(Exploratory Data Analysis, EDA)是机器学习工作流中至关重要的一个步骤,通过深入分析和理解数据的结构、分布和相关性,EDA帮助揭示数据背后的故事,并为后续的建模提供有…

KMP 算法

目录 KMP 算法 算法思路 为什么不需要在主串中进行回退 计算 next 数组 代码实现 next 数组优化 查找所有起始位置 KMP 算法 KMP 算法是一种改进的字符串匹配算法,由 D.E.Knuth,J.H.Morris 和 V.R.Pratt 提出的,因此人们称它为 克努特…

【ODSS】An Open Dataset of Synthetic Speech

文章目录 An Open Dataset of Synthetic Speechkey pointsODSS数据集局限性An Open Dataset of Synthetic Speech 会议/期刊:WIFS 2023 作者: key points 一个由合成语音和自然语音组成的多语言、多说话人数据集ODSS,旨在促进合成语音检测的研究和基准测试。 是由156个声…

Android compose 重建流程1

前言 本文是笔者学习Compose是如何自动触发UI刷新的笔记,可能缺乏一定可读性和教导性.(建议阅读参考文献更具启发性) 使用以下BOM作为研究环境. composeBom "2024.04.01" androidx-compose-bom { group "androidx.compose", name "compose-bom…

HarmonyOS Next应用开发——图像PixelMap压缩保存

【高心星出品】 图片编码保存 图片编码指将PixelMap编码成不同格式的存档图片,当前支持打包为JPEG、WebP、png和 HEIF(不同硬件设备支持情况不同) 格式,用于后续处理,如保存、传输等。图片编码是图片解码-图片处理-图片保存的最后环节&…

C#中的接口的使用

定义接口 public interface IMyInterface {int MyProperty { get; set; }void MyMethod(); } 实现类 internal class MyClass : IMyInterface {public int MyProperty { get; set; }public void MyMethod(){Console.WriteLine("MyMethod is called");} } 目录结构…

logback-spring.xml 配置

<?xml version"1.0" encoding"UTF-8"?> <configuration debug"false"> <!-- 只需配置好 log.dir 和 appName 属性 --> <property name"log.dir" value"/alidata1/admin/prophet-za-metadata"/&g…

什麼是高速HTTP代理?

高速HTTP代理是一種用於加速和優化互聯網連接的技術。它通過在用戶和目標網站之間充當仲介伺服器&#xff0c;幫助用戶快速訪問網路資源。HTTP代理不僅可以提高訪問速度&#xff0c;還能提供一定程度的隱私保護和安全性。 高速HTTP代理的工作原理 HTTP代理伺服器位於用戶設備…

linux使用close函数关闭文件后,变跟内容会立即同步到磁盘吗

Linux使用close函数关闭文件后&#xff0c;变更内容不会立即同步到磁盘‌ ‌close函数的作用‌&#xff1a;Linux系统中的close函数用于关闭一个已经打开的文件描述符。当一个文件描述符被关闭后&#xff0c;它将不再引用任何文件&#xff0c;且这个文件描述符的值可以被后续的…

深度学习 %matplotlib inline

%matplotlib inline 是在 Jupyter Notebook 中使用的一个魔法命令&#xff0c;主要用于配置 Matplotlib 图形的显示方式。具体来说&#xff0c;这个命令的作用是将 Matplotlib 生成的图形直接嵌入到 notebook 中&#xff0c;而不是在弹出的窗口中显示。 使用方法 在 Jupyter …

苏宁商品详情接口技术解析与实战代码

在电商平台的开发中&#xff0c;商品详情接口是至关重要的一环&#xff0c;它提供了商品的详细信息&#xff0c;包括价格、库存、规格、图片等&#xff0c;为用户购物决策提供关键依据。苏宁作为国内知名的电商平台&#xff0c;其提供的商品详情接口为开发者提供了丰富的商品数…

负载箱的作用?

负载箱&#xff0c;顾名思义&#xff0c;就是用来承载电力设备的箱子。在电力系统中&#xff0c;负载箱的作用非常重要&#xff0c;它不仅可以模拟实际的电力负载&#xff0c;还可以对电力设备进行测试和调试&#xff0c;确保其正常运行。下面详细介绍负载箱的作用。 1. 模拟实…

【妙趣横生】01_C语言的指针是啥?为啥那么难懂?

引入&#xff1a; C语言的指针是啥&#xff1f;为啥那么难懂&#xff1f; C语言中的指针是C语言的一个核心概念&#xff0c;也是其强大和灵活性的重要来源之一。然而&#xff0c;对于初学者来说&#xff0c;指针确实可能是一个难以理解的概念。下面我会尽量用简单的语言来解释…

深入了解Spring重试组件spring-retry

在我们的项目中&#xff0c;为了提高程序的健壮性&#xff0c;很多时候都需要有重试机制进行兜底&#xff0c;最多就场景就比如调用远程的服务&#xff0c;调用中间件服务等&#xff0c;因为网络是不稳定的&#xff0c;所以在进行远程调用的时候偶尔会产生超时的异常&#xff0…

7. 配置

三种获取配置的方法 返回 /config/config.php 、/config/autoload/xxx.php 中的值 <?php namespace App\Controller;use Hyperf\Config\Annotation\Value; use Hyperf\Contract\ConfigInterface; use Hyperf\Di\Annotation\Inject; use Hyperf\HttpServer\Annotation\AutoC…

Vue应用中使用xlsx库实现Excel文件导出的完整指南

Vue应用中使用xlsx库实现Excel文件导出的完整指南 在现代Web开发中&#xff0c;经常需要将数据导出为Excel文件&#xff0c;以便于用户进行离线分析或记录。Vue.js作为一个轻量级且高效的前端框架&#xff0c;结合xlsx库可以轻松实现这一功能。本文将详细介绍如何在Vue应用中使…