在互联网上,我们常能看到各种“有趣”的 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')
用途:自动生成简要摘要,减少阅读负担。