有些脚本平时想不起来,一遇到事才发现离不了:文件时间乱了、图片要打码、终端想整点排面、长文本挤成一团、书签散落各处、图片尺寸不统一。下面 6 个脚本代码完整、依赖常见,复制回去改改就能跑。
1. 批量修改文件时间戳(标准库,零安装)
拷贝过来的文件"修改日期"五花八门,整理归档时想统一,或者单纯想让某批文件"看起来"是同一天生成的,用 os.utime 一行搞定。
(零依赖,标准库 os / time 即可,无需 pip install)
import os, timedeftouch(folder, stamp=None): stamp = stamp or time.time()for f in os.listdir(folder): p = os.path.join(folder, f) os.utime(p, (stamp, stamp)) print(f"{f}: 时间戳已更新")touch("./docs")
小提示:os.utime 的参数是 (访问时间, 修改时间);想把整批统一成某个固定日期,把 stamp 换成 time.mktime(time.strptime("2026-01-01", "%Y-%m-%d"))。批量改时间会影响文件的"修改日期"显示,操作前先确认。
2. 把图片打成马赛克(Pillow)
要发图又不想暴露某些区域,或者单纯想要像素风,先缩到极小再放大回去,像素就被"合并"成块了。
(需 pip install Pillow)
from PIL import Imagedefpixelate(path, block=20, out="pixel.png"): img = Image.open(path) w, h = img.size small = img.resize((w // block, h // block)) small.resize((w, h)).save(out) print(f"已生成 {out}")pixelate("photo.jpg", block=20)
小提示:block 越大马赛克越粗;原理是先缩到 1/block 再放大回原尺寸。想只对局部打码,先用 crop 裁出区域单独处理,再 paste 回原图对应位置。
3. 在终端打出大字标题(pyfiglet)
命令行工具、脚本开头想有个排面,用 figlet 字体把文字渲染成 ASCII 艺术字,截图发群里很有辨识度。
(需 pip install pyfiglet)
from pyfiglet import Figletdefbanner(text, font="slant"): print(Figlet(font=font).renderText(text))banner("PYTHON")
小提示:font 可换成 "block"、"standard"、"banner" 等;本地没装的字体运行会报错,先用 Figlet().getFonts() 看可用列表。终端字体要选等宽的,否则对不齐。
4. 长文本自动换行排版(标准库,零安装)
从别处粘来的文字挤成一大段、没有换行,阅读费劲。用 textwrap 按指定宽度重新断行,瞬间清爽。
(零依赖,标准库 textwrap 即可,无需 pip install)
import textwrapdefwrap_text(path, width=40): text = open(path, encoding="utf-8").read()for line in text.splitlines(): print(textwrap.fill(line, width=width))wrap_text("note.txt", width=40)
小提示:fill 按 width 自动断行;中文按字符数计算,宽度设太小容易把一个词拆得太碎。想对整篇重排而非逐行处理,先把全文合并成一段再 fill。
5. 把书签导出成一张网页(标准库,零安装)
浏览器书签散在各处、换设备就丢。把链接整理到一个文本里,脚本一键生成可点击的单页 HTML,存哪都能打开。
(零依赖,标准库 html 即可,无需 pip install)
import htmldefbookmarks_to_html(path, out="bookmarks.html"): links = []for line in open(path, encoding="utf-8"): line = line.strip()if line.startswith("http"): links.append(f'<li><a href="{html.escape(line)}">{html.escape(line)}</a></li>') open(out, "w", encoding="utf-8").write(f"<h1>我的书签</h1><ul>{''.join(links)}</ul>") print(f"已生成 {out},共 {len(links)} 条")bookmarks_to_html("urls.txt")
小提示:上面假设每行一个链接存成 urls.txt;若书签来自浏览器导出,格式不同,先按实际结构解析再套用。用 html.escape 防止链接里的特殊字符破坏页面结构。
6. 图片批量裁成统一尺寸(Pillow)
一批图尺寸参差,做素材库或缩略图墙前,先统一裁成固定大小,整齐划一。
(需 pip install Pillow)
import osfrom PIL import Imagedefcrop_dir(folder, size=(800, 800)):for f in os.listdir(folder):ifnot f.lower().endswith((".png", ".jpg", ".jpeg")):continue p = os.path.join(folder, f) img = Image.open(p) img.crop((0, 0, *size)).save(p) print(f"{f}: 裁成 {size}")crop_dir("./photos", size=(800, 800))
小提示:crop 的参数是 (左, 上, 右, 下),上面从左上角裁出 size 大小;想居中裁先算偏移量。原图比目标尺寸小会被裁掉一部分,建议先确认再批量执行。
这 6 个脚本覆盖文件时间、图像像素化、终端艺术字、文本排版、书签整理、图片裁剪,都是平时顺手就能用上的需求。挑一个最戳你的先跑,改改路径和参数,它就是你的专属小工具。