实用的 Python 小脚本

一、引言

在日常办公和电脑使用中,我们经常会遇到一些重复性的任务或需要快速获取特定信息的情况。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 库和技术,可以让你编写出更加实用和强大的脚本。

相关推荐
fat house cat_5 分钟前
记一次网络io学习流水账
网络·学习
wjs20248 分钟前
jEasyUI 自定义窗口工具栏
开发语言
二十雨辰20 分钟前
vite与ts的结合
开发语言·前端·vue.js
xiaohanbao0920 分钟前
Transformer架构与NLP词表示演进
python·深度学习·神经网络
亦良Cool32 分钟前
如何部署一个Java项目
java·开发语言
沐知全栈开发43 分钟前
JavaScript 输出
开发语言
is08151 小时前
全志 H3 armbian 备份
linux·服务器·网络
love530love1 小时前
【笔记】 Podman Desktop 中部署 Stable Diffusion WebUI (GPU 支持)
人工智能·windows·笔记·python·容器·stable diffusion·podman
程序员晚枫1 小时前
Python 3.14正式发布!这5大新特性太炸裂了
python
自学AI的鲨鱼儿1 小时前
ubuntu22.04安装gvm管理go
开发语言·后端·golang