为什么用Python整理文件
手动整理几千个文件耗时且容易出错。Python可以自动化完成分类、归档、重命名、删除空文件夹等重复工作。而且用到的都是内置库,不需要安装额外包。
第一步:准备环境
确保电脑已安装Python 3.x。打开终端,检查版本:
python –version
本教程只用两个内置库:
import os
import shutil
from datetime import datetime
第二步:按文件类型分类
把混乱文件夹里的文件按扩展名分到不同子文件夹:
import os
import shutilsource = “C:/Users/你的用户名/Downloads”
extensions = {
“图片”: [“.jpg”, “.jpeg”, “.png”, “.gif”],
“文档”: [“.pdf”, “.docx”, “.txt”],
“表格”: [“.xlsx”, “.csv”],
“压缩”: [“.zip”, “.rar”]
}for filename in os.listdir(source):
file_path = os.path.join(source, filename)
if os.path.isfile(file_path):
ext = os.path.splitext(filename)[1].lower()
for folder, ext_list in extensions.items():
if ext in ext_list:
target_folder = os.path.join(source, folder)
os.makedirs(target_folder, exist_ok=True)
shutil.move(file_path, os.path.join(target_folder, filename))
break
第三步:按日期归档
把文件按修改日期放入年月文件夹:
for filename in os.listdir(source):
file_path = os.path.join(source, filename)
if os.path.isfile(file_path):
mtime = datetime.fromtimestamp(os.path.getmtime(file_path))
folder_name = mtime.strftime(“%Y-%m”)
target = os.path.join(source, folder_name)
os.makedirs(target, exist_ok=True)
shutil.move(file_path, os.path.join(target, filename))
第四步:批量重命名
把一批图片按序号重命名:
folder = “C:/Users/你的用户名/图片”
i = 1
for filename in sorted(os.listdir(folder)):
old_path = os.path.join(folder, filename)
if os.path.isfile(old_path):
ext = os.path.splitext(filename)[1]
new_name = f”项目A_{i:03d}{ext}”
new_path = os.path.join(folder, new_name)
os.rename(old_path, new_path)
i += 1
第五步:清理空文件夹
删除整理后留下的空文件夹:
for root, dirs, files in os.walk(source, topdown=False):
for dir_name in dirs:
dir_path = os.path.join(root, dir_name)
if not os.listdir(dir_path):
os.rmdir(dir_path)
第六步:安全注意事项
运行脚本前务必:
- 先用小文件夹测试
- 备份重要文件
- 不要直接操作系统盘根目录
- 重命名前确认新文件名不会覆盖已有文件
常见问题
- 中文路径报错:在字符串前加r或转义反斜杠
- 权限不足:用管理员权限运行终端
- 文件被占用:关闭相关程序再执行
- 重命名重复:先检查目标文件是否存在
效率数据
手动整理1000个文件可能需要1-2小时。用Python脚本运行只需几秒钟,加上检查和备份也不超过10分钟。对需要定期处理大量文件的人来说,每周可节省2-3小时。