文件整理太头大?Python脚本帮你一键归类与重命名
日常工作和生活中,我们总会遇到这样的困扰:下载文件夹里堆满了杂乱无章的文件,文档、图片、视频、安装包混在一起,想找某个文件要翻半天;桌面文件越积越多,图标密密麻麻,不仅影响视觉整洁,还会拖慢电脑运行速度;甚至有些文件命名混乱,“新建文档1”“截图20240520”“未命名文件”这类名称,时间久了根本不知道里面是什么内容。
手动整理?不仅耗时费力,还容易出现分类错误、遗漏文件的情况,整理完用不了几天又会回到杂乱状态。其实,只要掌握一段简单的Python脚本,就能实现文件的一键归类、批量重命名,彻底解放双手,让你的文件管理变得高效又规整。今天,就给大家分享一套实用的Python文件整理脚本,从基础实现到进阶优化,新手也能轻松上手操作。
一、脚本核心功能:解决文件整理两大痛点
这套Python脚本主要针对文件整理的两个核心需求,无需复杂操作,运行后即可自动完成:
-
一键归类文件:根据文件后缀名,自动将文件分类到对应文件夹(如“图片文件”“文档文件”“视频文件”“压缩包”等),无需手动筛选、剪切、粘贴。
-
批量规范重命名:可自定义命名规则,批量修改文件名称,比如按“分类+序号”“日期+文件名”“自定义前缀+序号”等格式,解决命名混乱的问题,方便后续查找。
无论是杂乱的下载文件夹、桌面,还是工作中的项目文件夹,这套脚本都能轻松应对,适配Windows、Mac、Linux等多种系统,只需修改脚本中的“目标文件夹路径”,即可直接运行。
二、前期准备:3步搞定环境搭建
在运行脚本前,需要简单搭建Python运行环境,全程无需复杂配置,新手也能快速完成:
1. 安装Python
前往Python官方网站(https://www.python.org/),下载对应系统的Python安装包,安装时勾选“Add Python to PATH”(重要,否则无法在命令行运行Python),按照提示下一步即可完成安装。安装完成后,打开命令行(Windows按Win+R输入cmd,Mac按Command+空格输入terminal),输入“python --version”,出现版本号即安装成功。
2. 准备脚本文件
新建一个文本文件,将后续的脚本代码复制粘贴进去,然后将文件后缀名改为“.py”(如“file_organize.py”),建议将脚本文件放在容易找到的位置(如桌面),方便后续运行。
3. 确认目标文件夹路径
找到你想要整理的文件夹(如“下载”文件夹),复制该文件夹的完整路径:Windows系统中,打开文件夹后,点击地址栏即可复制路径;Mac系统中,右键文件夹选择“显示简介”,复制“位置”中的路径。将复制的路径替换到脚本中对应的位置,即可指定整理目标。
三、基础版脚本:一键归类文件(新手首选)
基础版脚本专注于“文件归类”,代码简洁易懂,无需修改过多参数,适合新手入门使用。运行后,会自动在目标文件夹中创建对应分类文件夹,将所有文件按后缀名移动到对应文件夹中。
1. 基础版脚本代码
import os
import shutil
# 1. 配置目标文件夹路径(替换成你要整理的文件夹路径)
target_path = "C:/Users/XXX/Downloads" # Windows示例路径
# target_path = "/Users/XXX/Downloads" # Mac示例路径
# 2. 定义文件分类规则(可根据自己的需求添加/修改)
file_categories = {
"图片文件": [".jpg", ".jpeg", ".png", ".gif", ".bmp", ".tiff"],
"文档文件": [".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".wps"],
"视频文件": [".mp4", ".avi", ".mkv", ".mov", ".flv", ".wmv"],
"音频文件": [".mp3", ".wav", ".flac", ".m4a"],
"压缩包文件": [".zip", ".rar", ".7z", ".tar", ".gz"],
"安装包文件": [".exe", ".dmg", ".pkg"],
"其他文件": [] # 未匹配到的文件会放入“其他文件”
}
# 3. 遍历目标文件夹中的所有文件
for filename in os.listdir(target_path):
# 跳过文件夹,只处理文件
file_path = os.path.join(target_path, filename)
if os.path.isdir(file_path):
continue
# 获取文件后缀名(忽略大小写)
file_ext = os.path.splitext(filename)[1].lower()
# 匹配文件分类,确定目标文件夹
category = "其他文件"
for cat_name, ext_list in file_categories.items():
if file_ext in ext_list:
category = cat_name
break
# 创建分类文件夹(如果不存在)
category_path = os.path.join(target_path, category)
if not os.path.exists(category_path):
os.makedirs(category_path)
# 将文件移动到对应分类文件夹
shutil.move(file_path, os.path.join(category_path, filename))
print(f"已移动:{filename} → {category}")
print("文件归类完成!")
2. 脚本使用说明
-
修改“target_path”:将示例路径替换成你要整理的文件夹路径(如Windows的“C:/Users/你的用户名/Desktop”,Mac的“/Users/你的用户名/Desktop”)。
-
调整分类规则:如果有特殊文件类型需要添加,可在“file_categories”中新增分类(如“设计文件”,添加[".psd", ".ai", ".cdr"]),也可删除不需要的分类。
-
运行脚本:打开命令行,切换到脚本所在文件夹(如“cd 桌面”),输入“python file_organize.py”,按下回车,脚本会自动开始整理文件,实时显示移动进度。
注意:脚本会直接移动文件,不会删除任何文件,若整理后不满意,可手动将文件移回原文件夹,无需担心文件丢失。
四、进阶版脚本:归类+批量重命名,一步到位
如果你的文件不仅杂乱,还存在命名不规范的问题,可使用进阶版脚本,在归类文件的同时,批量重命名文件,让文件管理更规范。进阶版支持自定义命名规则,满足不同场景需求。
1. 进阶版脚本代码
import os
import shutil
import datetime
# 1. 配置目标文件夹路径
target_path = "C:/Users/XXX/Downloads" # 替换成你的目标路径
# target_path = "/Users/XXX/Downloads" # Mac示例路径
# 2. 定义文件分类规则(可自定义)
file_categories = {
"图片文件": [".jpg", ".jpeg", ".png", ".gif"],
"文档文件": [".doc", ".docx", ".pdf", ".txt", ".xlsx"],
"视频文件": [".mp4", ".mkv", ".mov"],
"音频文件": [".mp3", ".flac"],
"压缩包文件": [".zip", ".rar"],
"其他文件": []
}
# 3. 定义重命名规则(可选择/修改)
def rename_file(category, index, old_ext):
"""
自定义重命名规则:可根据需求修改
目前支持3种规则,注释掉不需要的,保留一种即可
"""
# 规则1:分类+序号(如“图片文件_001.jpg”)
new_name = f"{category}_{str(index).zfill(3)}{old_ext}"
# 规则2:日期+分类+序号(如“20240520_图片文件_001.jpg”)
# date_str = datetime.datetime.now().strftime("%Y%m%d")
# new_name = f"{date_str}_{category}_{str(index).zfill(3)}{old_ext}"
# 规则3:自定义前缀+序号(如“资料_001.jpg”)
# new_name = f"资料_{str(index).zfill(3)}{old_ext}"
return new_name
# 4. 按分类整理并批量重命名
for cat_name, ext_list in file_categories.items():
# 创建分类文件夹
cat_path = os.path.join(target_path, cat_name)
if not os.path.exists(cat_path):
os.makedirs(cat_path)
# 遍历目标文件夹,筛选当前分类的文件
file_list = []
for filename in os.listdir(target_path):
file_path = os.path.join(target_path, filename)
if os.path.isfile(file_path):
file_ext = os.path.splitext(filename)[1].lower()
if file_ext in ext_list:
file_list.append((filename, file_ext))
# 批量重命名并移动文件
for index, (old_name, old_ext) in enumerate(file_list, start=1):
new_name = rename_file(cat_name, index, old_ext)
old_file_path = os.path.join(target_path, old_name)
new_file_path = os.path.join(cat_path, new_name)
shutil.move(old_file_path, new_file_path)
print(f"已整理:{old_name} → {cat_name}/{new_name}")
# 处理“其他文件”
other_path = os.path.join(target_path, "其他文件")
if not os.path.exists(other_path):
os.makedirs(other_path)
for filename in os.listdir(target_path):
file_path = os.path.join(target_path, filename)
if os.path.isfile(file_path):
shutil.move(file_path, os.path.join(other_path, filename))
print(f"已整理:{filename} → 其他文件/{filename}")
print("文件归类+重命名完成!")
2. 进阶版核心优化
-
自定义重命名规则:脚本中提供了3种常用命名规则,可根据需求选择(注释掉不需要的规则,保留一种即可),也可自行修改命名格式(如添加时间戳、自定义前缀等)。
-
序号补零:使用“str(index).zfill(3)”实现序号补零(如001、002),避免出现1、10、100这样的序号混乱,视觉更规整。
-
分步处理:先按分类筛选文件,再批量重命名,避免重命名冲突,确保整理过程更稳定。
五、常见问题与解决方案
运行脚本过程中,可能会遇到一些小问题,这里整理了最常见的3种情况及解决方案,帮你快速排查:
1. 脚本运行报错“找不到路径”
原因:目标文件夹路径填写错误(如拼写错误、路径中包含中文空格、未添加引号等)。
解决方案:重新复制目标文件夹的完整路径,确保路径正确,Windows路径用反斜杠“/”或双反斜杠“\\”,Mac路径直接复制即可;若路径中包含中文,无需额外处理,Python3支持中文路径。
2. 部分文件无法移动(提示“文件正在使用”)
原因:该文件正在被其他程序打开(如正在查看的图片、正在编辑的文档),系统无法移动正在使用的文件。
解决方案:关闭正在使用该文件的程序,重新运行脚本即可。
3. 想保留原文件,只复制分类,不移动
原因:默认脚本是“移动”文件,若想保留原文件,可修改脚本中的“移动”指令为“复制”指令。
解决方案:将脚本中的“shutil.move”替换为“shutil.copy2”(copy2会保留文件的原始属性,如创建时间、修改时间),修改后脚本会复制文件到分类文件夹,原文件仍保留在原路径。
六、拓展技巧:让脚本更实用
除了基础的归类和重命名,还可以对脚本进行简单修改,实现更多实用功能,适配不同场景:
-
自动清理空文件夹:在脚本末尾添加代码,整理完成后自动删除目标文件夹中的空文件夹,避免残留无用文件夹。
-
排除指定文件/文件夹:如果有部分文件/文件夹不想被整理(如脚本文件、重要文档),可在遍历文件时添加判断,跳过指定文件/文件夹。
-
设置定时运行:Windows可通过“任务计划程序”、Mac可通过“自动操作”,设置脚本定时运行(如每天凌晨自动整理下载文件夹),实现“一劳永逸”。
七、总结:Python脚本让文件整理“零负担”
其实,Python脚本的核心优势就是“自动化”——把我们手动重复的工作(筛选、分类、重命名、移动)交给代码完成,不仅节省时间,还能避免人为错误,让文件整理变得高效、规整。
以上分享的基础版和进阶版脚本,涵盖了大多数人的文件整理需求,新手只需按照步骤修改路径、运行脚本,就能轻松搞定杂乱的文件;有一定Python基础的朋友,还可以根据自己的需求,拓展更多功能(如批量压缩、文件检索等)。
从此,再也不用为杂乱的文件头疼,让Python脚本帮你一键搞定文件整理,腾出更多时间专注于更重要的事情。赶紧试试,让你的电脑桌面、文件夹,从此变得干净又规整吧!

浙公网安备 33010602011771号