在互联网上,我们常能看到各种“有趣”的 Python 脚本:批量重命名文件、图片格式转换……看多了难免乏味。

然而,真正能解决实际问题、在不经意间帮你节省大量时间和精力的脚本并不多见。本文整理的 12 个脚本,不是炫技,也不是为了装饰 GitHub,而是让你在工作中更高效、更聪明,甚至更“传奇”。

1. 剪贴板历史记录器

import time
import pyperclip

history = []

def clipboard_logger():
    recent_value = ""
    while True:
        tmp_value = pyperclip.paste()
        if tmp_value != recent_value:
            recent_value = tmp_value
            history.append(recent_value)
            print(f"Copied: {recent_value}")
        time.sleep(1)

clipboard_logger()

用途:自动记录剪贴板历史,可随时找回之前复制的内容,相当于给 Ctrl+C 加了“撤销”功能。

2. Wi-Fi 密码快速提取

import subprocess
import re

def get_wifi_passwords():
    data = subprocess.check_output('netsh wlan show profiles', shell=True)
    profiles = re.findall("All User Profile\s*:\s(.*)", data.decode())
    for profile in profiles:
        info = subprocess.check_output(f'netsh wlan show profile "{profile.strip()}" key=clear', shell=True)
        password = re.search("Key Content\s*:\s(.*)", info.decode())
        print(f"{profile.strip()}: {password.group(1) if password else 'No Password Found'}")

get_wifi_passwords()

用途:检索系统中保存过的所有 Wi-Fi 密码,方便在其他设备上快速连接。

3. 截图自动分类

import os
import shutil
from datetime import datetime

def sort_screenshots(folder):
    for file in os.listdir(folder):
        if "screenshot" in file.lower():
            date_str = datetime.fromtimestamp(os.path.getctime(os.path.join(folder, file))).strftime("%Y-%m-%d")
            date_folder = os.path.join(folder, date_str)
            os.makedirs(date_folder, exist_ok=True)
            shutil.move(os.path.join(folder, file), os.path.join(date_folder, file))
            print(f"Moved {file} -> {date_folder}")

sort_screenshots('/path/to/your/screenshots')

用途:自动将截图按拍摄日期分类存放,让文件夹更整洁。

4. 桌面文件自动归档

import os
import shutil

def clean_desktop():
    desktop = os.path.join(os.path.expanduser("~"), "Desktop")
    organized = os.path.join(desktop, "Organized")
    os.makedirs(organized, exist_ok=True)

    for item in os.listdir(desktop):
        if item != "Organized":
            shutil.move(os.path.join(desktop, item), os.path.join(organized, item))
            print(f"Moved: {item}")

clean_desktop()

用途:将桌面文件统一移动到“Organized”文件夹中,保持工作区整洁。

5. 离线语音命令识别

import speech_recognition as sr

def voice_command():
    r = sr.Recognizer()
    with sr.Microphone() as source:
        print("Speak now...")
        audio = r.listen(source)
        try:
            command = r.recognize_google(audio)
            print(f"You said: {command}")
        except:
            print("Could not understand audio.")

voice_command()

用途:通过语音输入直接与 Python 交互,无需额外 API。

6. 基于文件内容的智能重命名

import os

def smart_rename(folder):
    for filename in os.listdir(folder):
        full_path = os.path.join(folder, filename)
        if filename.endswith('.txt'):
            with open(full_path, 'r') as file:
                first_line = file.readline().strip().replace(" ", "_")[:30]
                new_name = f"{first_line}.txt"
                os.rename(full_path, os.path.join(folder, new_name))
                print(f"Renamed to: {new_name}")

smart_rename('/path/to/txt/files')

用途:根据文件首行内容自动命名,避免多个 notes.txt 混淆。

7. 电量提醒工具

import psutil
import time

def battery_alert():
    while True:
        battery = psutil.sensors_battery()
        if battery.percent < 15 and not battery.power_plugged:
            print("⚠️  Battery low! Plug in the charger.")
        time.sleep(60)

battery_alert()

用途:在电量低于 15% 且未充电时提醒用户,减少意外关机风险。

8. 离线语法检查

from gingerit.gingerit import GingerIt

def fix_grammar(text):
    parser = GingerIt()
    result = parser.parse(text)
    print(result['result'])

fix_grammar("I has a pen and she have a notebook")

用途:本地修正语法错误,保护数据隐私。

9. 银行短信账单解析

快速提取消费记录

import re

def extract_expenses(file_path):
    with open(file_path, 'r') as f:
        lines = f.readlines()
    for line in lines:
        if "debited" in line.lower():
            amount = re.findall(r'INR\s?[\d,]+', line)
            print(f"Expense: {amount[0] if amount else 'Unknown'} - {line.strip()}")

extract_expenses('bank_sms.txt')

用途:从导出的银行短信记录中提取每笔支出金额,便于财务管理。

10. 基于日历文件的会议提醒

from ics import Calendar

def upcoming_events(ics_file):
    with open(ics_file, 'r') as f:
        calendar = Calendar(f.read())
    for event in calendar.events:
        print(f"Event: {event.name} | {event.begin.humanize()}")

upcoming_events('calendar.ics')

用途:读取 .ics 日历文件,提醒即将到来的会议安排。

11. 文件夹本地 Web 图库

import os
from http.server import SimpleHTTPRequestHandler, HTTPServer

def serve_folder(folder, port=8000):
    os.chdir(folder)
    server = HTTPServer(('localhost', port), SimpleHTTPRequestHandler)
    print(f"Serving {folder} at http://localhost:{port}")
    server.serve_forever()

serve_folder('/path/to/image/folder')

用途:将本地文件夹通过局域网以网页形式共享。

12. 文本摘要工具

from gensim.summarization import summarize

def summarize_text(file_path):
    with open(file_path, 'r') as f:
        content = f.read()
    print(summarize(content))

summarize_text('meeting_notes.txt')

用途:自动生成简要摘要,减少阅读负担。

最后修改:2025 年 08 月 19 日
本站福利|微信扫描二维码,永久享受 96 折充话费电费