SKILL.md
文件夹整理#
把一个文件夹里散落的文件自动归类到子文件夹。核心能力由 scripts/organize.py 提供,纯本地运行、不联网、不删除文件、不移动子文件夹。
工作流(严格按顺序)#
- 确认目标路径:向用户确认要整理的文件夹绝对路径。脚本会拒绝整理驱动器根(如
C:\)、Windows 系统目录和用户主目录,防止误操作。 - 先预览,不直接动手:运行不带
--execute的命令,脚本输出每个文件的归类计划但不改动任何东西。python scripts/organize.py "<目标文件夹>" - 用户确认后再执行:把预览计划给用户看,得到明确同意后加
--execute真正移动文件。python scripts/organize.py "<目标文件夹>" --execute - 报告结果:执行后告知各分类移动了多少个文件;如出现自动重命名(目标同名),一并说明。
选项(按用户需求选用)#
--by-date:不按类型,改为按文件修改时间的年-月子文件夹归类。--copy:保留原文件,复制到分类文件夹(默认为移动)。--recursive:递归处理子文件夹中的文件;已在分类文件夹内的文件会自动跳过,不会重复整理。
安全规则#
- 默认 dry-run,只有
--execute才会改动文件;不要跳过预览直接执行。 - 只处理文件,不移动、不删除子文件夹;隐藏文件(以
.开头)跳过。 - 目标位置已存在同名文件时自动追加
_1、_2序号,绝不覆盖。 - 整理前如发现目标路径是系统保护目录,停止并告诉用户,不要换写法绕过。
- 移动完成后不自动清空任何目录;空文件夹是否删除由用户另行决定。
分类口径#
按扩展名匹配,未命中或无扩展名的文件统一进入 其他。分类与扩展名的完整映射见 scripts/organize.py 顶部的 CATEGORY_MAP;需要新增分类或调整归类时,先读该脚本再修改,并重新跑一遍验证。
用途与依赖
作者没写,这些是平台读文件后整理的,以文件为准。
使用示例
请求:帮我整理一下 D:\下载 这个文件夹,太乱了。
预期
先确认路径 D:\下载,然后运行 python scripts/organize.py "D:\下载" 生成预览,列出每个文件将进入哪个分类子文件夹(例如 [图片] a.jpg -> 图片/a.jpg),并汇总“共 N 个文件:图片 3 个,文档 5 个…”,明确说明这是预览、未改动任何文件。得到用户确认后再运行加 --execute 的命令真正移动,最后报告各分类移动了多少个文件,以及哪些文件因同名被重命名为 _1、_2。若该路径是驱动器根、系统目录或用户主目录,脚本会直接报错停止。
- 适用场景
- 下载目录或桌面堆满各种文件,想按类型分好
- 把散落的图片、文档、视频、压缩包各自归到子文件夹
- 按修改时间(年-月)归档一批文件
- 先看一看整理计划,确认后再动手
- 只想复制一份分类副本、保留原文件不动
- 连同子文件夹里的文件一起递归整理
- 整理代码、程序安装包等特定类型的文件
- 输入
- 要整理的文件夹绝对路径
- 是否确认执行(先预览,确认后加 --execute)
- 可选:按修改时间年-月归类(--by-date),而非按类型
- 可选:复制而非移动(--copy)
- 可选:是否递归处理子文件夹(--recursive)
- 输出
- 每个文件的归类预览清单(原文件名 -> 目标相对路径)
- 按分类汇总的文件数量统计
- 执行后的完成提示,含自动重命名说明
- 目标文件夹下新建的分类子文件夹及移入/复制进去的文件
- 运行环境
- Python 3(脚本使用 pathlib 与 list[Path] 类型标注,需 3.9 及以上)
- 依赖
- 无

