日常里有一类工作:不算难,但重复、琐碎、切换软件麻烦。下面六个脚本分别处理图片格式、音频片段、终端提示、系统进程、文档格式和专注计时,代码完整、依赖常见,复制回去改改路径就能跑。
1. 图片批量格式转换
jpg、png、webp 之间互转,批量处理一整个文件夹,做图时不必逐个打开软件另存。
(需 pip install Pillow)
from PIL import Image
import os
defconvert_folder(src, dst, to="PNG"):
os.makedirs(dst, exist_ok=True)
for name in os.listdir(src):
if name.lower().endswith((".jpg", ".jpeg", ".png", ".webp", ".bmp")):
img = Image.open(os.path.join(src, name)).convert("RGB")
base = os.path.splitext(name)[0]
img.save(os.path.join(dst, f"{base}.{to.lower()}"), to)
print(f"已转换:{name}")
# convert_folder("原图", "转后", to="WEBP")
小提示:webp 体积更小、适合网页;convert("RGB") 能避免带透明通道的 png 转 jpg 时报错。
2. 音频片段裁剪
从一段长音频里截取指定起止时间的小段,做铃声或素材都方便。
(需 pip install pydub,另装 ffmpeg)
from pydub import AudioSegment
defclip(src, out, start=0, end=30):
audio = AudioSegment.from_file(src)
seg = audio[start * 1000: end * 1000]
seg.export(out, format=out.split(".")[-1])
print(f"已截出 {end - start} 秒 -> {out}")
# clip("演讲.mp3", "片段.mp3", start=60, end=90)
小提示:时间单位是秒,内部乘 1000 转成毫秒;ffmpeg 没装会报错,按官网装一个即可。
3. 终端打字机文字动画
让文字像被逐个敲出来一样显示在终端,做演示或开场提示很有质感。零依赖。
import time, sys
deftypewriter(text, delay=0.03):
for ch in text:
sys.stdout.write(ch)
sys.stdout.flush()
time.sleep(delay)
print()
# typewriter("正在加载你的专属报告……")
小提示:delay 调小更快;想换行就在 text 里加 \n。
4. 进程管理与监控
列出当前占用较高的进程,必要时一键结束指定进程,适合电脑卡顿时快速排查。
(需 pip install psutil)
import psutil
deftop_procs(n=5):
procs = []
for p in psutil.process_iter(["pid", "name", "memory_info"]):
try:
mem = p.info["memory_info"].rss // 1024 // 1024
procs.append((mem, p.info["pid"], p.info["name"]))
except Exception:
pass
for mem, pid, name in sorted(procs, reverse=True)[:n]:
print(f"{mem}MB PID={pid}{name}")
# top_procs(5)
# psutil.Process(1234).terminate() # 结束指定进程
小提示:terminate 是温柔结束,kill 是强杀;结束系统进程前确认清楚,避免误关。
5. PDF 转为 Word 文档
把 PDF 内容导出成可编辑的 docx,省去手动重排的功夫。
(需 pip install pdf2docx)
from pdf2docx import Converter
defpdf_to_word(pdf, docx):
cv = Converter(pdf)
cv.convert(docx, start=0, end=None)
cv.close()
print(f"已生成:{docx}")
# pdf_to_word("说明.pdf", "说明.docx")
小提示:复杂排版的 PDF(多栏、表格)转换效果有限,纯文字页最稳;页数多会慢一些。
6. 简易番茄钟
工作 25 分钟、休息 5 分钟,到点弹窗提醒,帮自己保持节奏。
(tkinter 通常随 Python 自带,无需额外安装)
import tkinter as tk
defpomodoro(work=25, rest=5):
root = tk.Tk()
root.title("番茄钟")
label = tk.Label(root, font=("Arial", 40))
label.pack(padx=30, pady=30)
deftick(sec, tip):
if sec <= 0:
label.config(text=tip + " 时间到")
root.bell()
return
m, s = divmod(sec, 60)
label.config(text=f"{tip}{m:02d}:{s:02d}")
root.after(1000, tick, sec - 1, tip)
tick(work * 60, "专注")
root.after(work * 60 * 1000, lambda: tick(rest * 60, "休息"))
root.mainloop()
# pomodoro(25, 5)
小提示:root.after 是 tkinter 自带的定时器,不用另装库;想改时长调 work / rest 即可。
这六个脚本横跨图像、音频、终端、系统、文档和专注工具,共同点是把切换软件的成本省掉。挑一个最顺手的先跑,改改参数,它就归你调度了。