为什么用Python整理文件

手动整理几千个文件耗时且容易出错。Python可以自动化完成分类、归档、重命名、删除空文件夹等重复工作。而且用到的都是内置库,不需要安装额外包。

第一步:准备环境

确保电脑已安装Python 3.x。打开终端,检查版本:

python –version

本教程只用两个内置库:

import os
import shutil
from datetime import datetime

第二步:按文件类型分类

把混乱文件夹里的文件按扩展名分到不同子文件夹:

import os
import shutil

source = “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小时。