实用的 Python 小脚本

news2024/10/23 17:31:43

一、引言

在日常办公和电脑使用中,我们经常会遇到一些重复性的任务或需要快速获取特定信息的情况。Python 作为一种强大而灵活的编程语言,可以用来编写各种小脚本,以自动化这些任务并提高工作效率。本文将介绍一些 Python 常用的小脚本,包括文件管理、数据处理、电脑信息查询等方面,帮助读者更好地利用 Python 解决实际问题。

二、文件管理脚本

(一)批量重命名文件

在处理大量文件时,手动重命名文件是一项繁琐的任务。使用 Python 可以轻松实现批量重命名文件。以下是一个示例脚本:

import os

def 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 time

source_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 pd

def process_csv(file_path):
    df = pd.read_csv(file_path)
    # 提取特定列的数据
    column_data = df["column_name"]
    # 进行数据清洗,例如去除空值
    cleaned_data = column_data.dropna()
    return cleaned_data

file_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 = 0
        for line in lines:
            words = line.split()
            word_count += len(words)
        return len(lines), word_count

file_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 psutil

def 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 socket

def get_ip_address():
    hostname = socket.gethostname()
    ip_address = socket.gethostbyname(hostname)
    return ip_address

print(get_ip_address())

这个脚本使用 socket 库获取电脑的 IP 地址。

五、日常办公辅助脚本

(一)自动发送邮件

在一些情况下,你可能需要自动发送邮件通知。以下是一个使用 smtplib 库发送邮件的示例:

import smtplib
from email.mime.text import MIMEText

def send_email(subject, body, to_email):
    from_email = "your_email@gmail.com"
    password = "your_password"
    msg = MIMEText(body)
    msg['Subject'] = subject
    msg['From'] = from_email
    msg['To'] = to_email
    server = 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 winsound

def 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 Image

def 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 os

def 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 string

def generate_password(length):
    characters = string.ascii_letters + string.digits + string.punctuation
    password = ''.join(random.choice(characters) for i in range(length))
    return password

length = 12  # 设置密码长度
password = generate_password(length)
print(password)

这个脚本生成一个指定长度的随机密码,包含字母、数字和标点符号。

九、清理临时文件脚本

电脑中的临时文件会占用存储空间并可能影响系统性能。以下是一个清理特定目录中临时文件的脚本:

import os

def 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 os

def 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 BeautifulSoup

def 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 shutil

def 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.coloradmin.cn/o/2221749.html

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

相关文章

【KEIL那些事 4】CMSIS缺失!!!!导致不能编译!!!!软件自带芯片下载缓慢!!!!!!快速下载芯片包!!!!!

安装了keli发现emmm,CMSIS缺失!!!!不能编译,,,自带下载芯片缓慢,,,官网下载emmm,竟然不带动的!!!&…

MySQL根据.idb数据恢复脚本,做成了EXE可执行文件

文章目录 1.代码2.Main方法打包3.Jar包打成exe可执行文件4.使用(1.)准备一个表结构一样得数据库(2.)打开软件(3.)输入路径 5.恢复成功 本文档只是为了留档方便以后工作运维,或者给同事分享文档内…

查看Chrome安装路

谷歌Google浏览器查看安装路径,浏览器Google Chrome浏览器查看安装路径 chrome://version/ 来源:笔记云

(数据结构)单链表——C语言

目录 1 概念与结构 1.1 结点 1.2 链表的性质 2 实现单链表 2.1打印SLPrint 2.2申请一个结点SLBuyNode 2.3尾插SLPushBack 2.4头插SLPushfront 2.5尾删SLPopBack 2.6头删SLPopfront 2.7查找结点位置SLFindNode 2.8在pos位置插入SLInsert 2.9在pos节点之后插入SLInse…

2024HarmonyOS应用开发者高级认证 最新题库第二部分

单选题 1.以下哪个装饰器用来表示并发共享对象。(D) AShared BState CStyle DSendable 2.hiAppEvent提供的Watcher接口,需要订阅到OS的崩溃事件,正确的实现方式(选下面这个) hiAppEvent.addWatcher({ name:"watcher&…

探索网页组件化:原生JavaScript动态加载HTML与iframe的使用与比较

在网页设计中,将内容作为组件动态加载到页面上是一种提高用户体验和页面性能的有效手段。本文将详细介绍两种实现动态内容加载的方法:使用原生JavaScript动态加载HTML和使用iframe,并对比它们的使用方式和优缺点。 原生JavaScript动态加载HTM…

[论文笔记]HERMES 3 TECHNICAL REPORT

引言 今天带来论文HERMES 3 TECHNICAL REPORT,这篇论文提出了一个强大的工具调用模型,包含了训练方案介绍。同时提出了一个函数调用标准。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 聊天模…

RISC-V笔记——内存模型总结

1 前言 Memory consistency model定义了使用Shared memory(共享内存)执行多线程(Multithread)程序所允许的行为规范。RISC-V使用的内存模型是RVWMO(RISC-V Weak Memory Ordering),RVWMO内存模型是根据全局内存顺序(global memory order)定义的,全局内存…

简单有效修复d3d9.dll错误,11种d3d9.dll错误详细解决办法教程

当你遇到d3d9.dll文件丢失的问题时,可以通过今天的这篇文章详细的步骤来尝试修复这个问题,今天将教大家十一种d3d9.dll丢失修复的方法。 1. 重新安装DirectX以恢复d3d9.dll d3d9.dll是DirectX的一部分,因此重新安装DirectX通常可以解决d3d9.…

proguard对java代码进行混淆加密。并进行反编译测试,后续可配合classfinal进行使用

文章目录 1.插件混淆(1.)pom配置(2.)混淆配置(3.)打包 2.反编译查看效果(1.)工具下载(2.)反编译对比 3.启动测试4.功能测试5.二次加密 本文档只是为了留档方便…

【ChatGPT插件漏洞三连发之一】未授权恶意插件安装

漏洞 要了解第一个漏洞,我们必须首先向您展示 OAuth 身份验证的工作原理: 假设您是 Dan,并且您想使用您的 Facebook 帐户连接到 Example.com。当您点击“使用Facebook登录”时会发生什么? 在步骤 2-3 中: 在 Dan 单…

2024成为自动化测试的7种技能!

随着敏捷和DevOps等新时代项目开发方法逐渐取代旧的瀑布模型,测试需求在业界不断增长。测试人员现在正在与开发人员一起工作,自动化测试在许多方面极大地取代了手动测试。如果您是自动化测试领域的新手,刚雇用您的组织将期望您快速&#xff0…

java线程的几种状态

线程的所有状态 NEW: 安排了工作, 还未开始行动RUNNABLE: 可工作的. 又可以分成正在工作中和即将开始工作. BLOCKED: 这几个都表示排队等着其他事情 WAITING: 这几个都表示排队等着其他事情TIMED_WAITING: 这几个都表示排队等着其他事情TERMINATED: 工作完成了. 线程状态和状…

《黑神话悟空》各章节boss顺序汇总

第一章BOSS顺序: 1、牯护院:犀牛精,位于苍狼岭娟,击败后能获得定身术。 2、广智:火刀狼, 位于观音禅院,击败后获得广智变身,记得敲钟。 3、蓝皮幽魂:蓝皮大头&#xff0…

大模型入门到精通!大模型应用开发极简入门(含PDF)

大模型的出现正悄然改变人们的生活与工作方式,比如ChatGPT-4、文心一言、通义千问等语言大模型。它们已帮助很多办公室“白领”们在解决日常工作问题,如制定计划、撰写实施方案,甚至制作美化PPT等(笔者及身边的同事在工作中还经常…

Star Tower:智能合约的安全基石与未来引领者

在区块链技术的快速发展中,智能合约作为新兴的应用形式,正逐渐成为区块链领域的重要组成部分。然而,智能合约的可靠性问题一直是用户最为关心的焦点之一。为此,Star Tower以其强大的技术实力和全面的安全保障措施,为智…

pytest中@pytest.fixture常用顺序function

ytest中pytest.fixture用法讲解 1、测试函数开始之前2、执行测试函数:3、测试函数结束后: 备注:内容来自chatGPT 在 pytest 中,pytest.fixture 是一个非常强大的功能,用于设置测试所需的环境和状态。它可以通过 scope…

听泉鉴宝在三个月前已布局商标注册!

近日“听泉鉴宝”以幽默的风格和节目效果迅速涨粉至2500多万,连线出现“馆藏文物”和“盗墓现场”等内容,听泉鉴宝早在几个月前已布局商标注册。 据普推知产商标老杨在商标局网站检索发现,“听泉鉴宝”的主人丁某所持股的江苏灵匠申请了三十…

R语言统计分析——置换检验2

参考资料&#xff1a;R语言实战【第2版】 独立两样本和K样本检验 # 安装coin包 install.packages(c("coin")) # 加载coin包 library(coin) # 创建检验数据集 score<-c(40,57,45,55,58,57,64,55,62,65) treatment<-factor(c(rep("A",5),rep("B…

51单片机应用——直流电机PWM调速

目标实现功能 单片机引脚输出PWM波形控制直流电机以不同转速工作。 1.PWM简介 PWM技术 PWM的中文全称是脉宽调制&#xff0c;常用于电动机控制、开关电源、音频放大器等。利用PWM技术可以达到微处理器&#xff08;如单片机&#xff09;的数字输出对模拟电路控制的效果。 P…