Python自动化之批量重命名与智能文件分类
利用Python脚本实现文件批量重命名与智能分类。批量重命名可统一命名规则或替换关键词;智能分类则根据文件扩展名自动归档至对应文件夹,覆盖日常文件管理八成需求。
电脑用久了,桌面和下载文件夹总会变得一团糟——文件乱得像泼出去的水,想找某个文档得翻半天。其实,用 Python 写几个小脚本,就能一键搞定重命名、按类型归档,甚至还能把重复文件清理掉。今天就来拆解一下,看看这些实用脚本怎么写。

一、批量重命名
1. 统一命名规则
很多时候,我们拿到的文件名字乱七八糟,比如“新建文档 (1).docx”、“IMG_20250321_093456.jpg”……要是有个统一的前缀加序号,管理起来就舒服多了。下面这个函数就能做到:
import os
def batch_rename(directory, prefix="file", start=1, digits=3):
"""
统一命名:prefix_001.ext, prefix_002.ext ...
directory: 文件夹路径
prefix: 文件名前缀
start: 起始编号
digits: 编号位数
"""
files = [f for f in os.listdir(directory)
if os.path.isfile(os.path.join(directory, f))]
# 按修改时间排序
files.sort(key=lambda x: os.path.getmtime(
os.path.join(directory, x)))
for i, filename in enumerate(files):
name, ext = os.path.splitext(filename)
new_name = f"{prefix}_{str(start + i).zfill(digits)}{ext}"
old_path = os.path.join(directory, filename)
new_path = os.path.join(directory, new_name)
os.rename(old_path, new_path)
print(f"{filename} → {new_name}")
代码里默认按文件修改时间排序,你也可以改成按名称排序,或者直接忽略顺序。起始编号、位数都能自定义,灵活度很高。
2. 替换文件名中的关键词
有时我们需要批量把文件名里的“旧版本”改成“新版本”,或者把“临时”字样去掉。下面的函数专门干这个:
def replace_text(directory, old_text, new_text):
"""批量替换文件名中的关键词"""
count = 0
for f in os.listdir(directory):
fp = os.path.join(directory, f)
if os.path.isfile(fp) and old_text in f:
new_name = f.replace(old_text, new_text)
os.rename(fp, os.path.join(directory, new_name))
count += 1
print(f"共替换 {count} 个文件")
原理很简单,就是遍历文件,检查文件名是否包含指定字符串,有就替换掉。注意只替换文件名,不碰文件内容。
二、智能文件归档
桌面乱的最大原因,往往是图片、文档、压缩包混在一起。如果能按后缀名自动归类到不同文件夹,瞬间清爽。来看这个自动归档脚本:
import shutil
EXTENSION_MAP = {
".jpg": "图片", ".jpeg": "图片", ".png": "图片", ".gif": "图片",
".doc": "文档", ".docx": "文档", ".pdf": "文档", ".txt": "文档",
".xls": "表格", ".xlsx": "表格",
".zip": "压缩包", ".rar": "压缩包", ".7z": "压缩包",
".mp4": "视频", ".a vi": "视频",
".mp3": "音乐", ".wa v": "音乐",
".py": "代码", ".ja va": "代码", ".js": "代码", ".html": "代码",
}
def auto_sort(directory):
"""按文件类型自动归档"""
for f in os.listdir(directory):
fp = os.path.join(directory, f)
if not os.path.isfile(fp):
continue
_, ext = os.path.splitext(f)
folder = EXTENSION_MAP.get(ext.lower(), "其他")
target = os.path.join(directory, folder)
os.makedirs(target, exist_ok=True)
shutil.move(fp, os.path.join(target, f))
这个映射表可以按需扩展,比如把“.svg”加到图片里,把“.md”加进文档。执行时,脚本会在当前目录下创建对应分类文件夹,然后移动文件。如果文件已经在对应文件夹里,会跳过——因为os.path.isfile不包含子目录。不过要注意,如果不同文件夹里有同名文件,移动时会覆盖,所以最好先跑一遍测试,或者加个重名处理逻辑。
这三个脚本组合起来,基本能覆盖日常文件管理的八成需求。你可以把它们封装成独立的 .py 文件,或者写个主函数一键调用。下次桌面再乱的时候,跑一遍脚本,世界就清净了。
Postman是一套面向API全生命周期的开发与测试平台,可在Mac上发送和调试多种协议请求,管理集合、环境及认证信息,并完成脚本测试、模拟服务、监控、文档发布和团队协作。它适合开发、测试及运维人员使用,提供个人免费方案。
Docker Desktop 是 Docker 官方为 Mac 提供的容器开发环境,集成 Docker Engine、命令行工具、Compose、Build、Kubernetes 与图形化管理界面。
Android Studio 是 Google 面向安卓应用开发提供的官方集成开发环境,基于 IntelliJ IDEA 构建。它整合智能代码编辑、Gradle 构建、界面预览、设备模拟、性能分析、调试测试及 APK 分析等工具。
PixPix 是面向品牌、卖家和内容团队的在线 AI 图片视频创作平台,提供图视频 Agent、无限画布、图片生成、视频生成、自然语言编辑及商品套图、产品精修和带货视频等电商工具。
Postman 是面向 API 全生命周期的开发与协作平台。Windows 桌面版可用于构建和发送 HTTP、GraphQL、gRPC、WebSocket、MQTT 等请求,并提供环境变量、集合、脚本测试、模拟服务、监控、文档及团队工作区等
Docker Desktop 为 Windows 开发者提供集成式容器环境,内置 Docker Engine、命令行工具、Compose、Build 与 Kubernetes 等组件,可在本机完成镜像构建、容器运行、日志查看和资源管理。













