跳到主要内容

文件夹整理

收藏0

整理文件夹内散落的文件,按文件类型或修改时间自动归类到子文件夹,默认先预览、确认后执行,不覆盖同名文件。

让 AI 安装

Mercury最新版本 0.1.0更新于 2026-11-02下载 0 次

SKILL.md

文件夹整理#

把一个文件夹里散落的文件自动归类到子文件夹。核心能力由 scripts/organize.py 提供,纯本地运行、不联网、不删除文件、不移动子文件夹。

工作流(严格按顺序)#

  1. 确认目标路径:向用户确认要整理的文件夹绝对路径。脚本会拒绝整理驱动器根(如 C:\)、Windows 系统目录和用户主目录,防止误操作。
  2. 先预览,不直接动手:运行不带 --execute 的命令,脚本输出每个文件的归类计划但不改动任何东西。
    python scripts/organize.py "<目标文件夹>"
    
  3. 用户确认后再执行:把预览计划给用户看,得到明确同意后加 --execute 真正移动文件。
    python scripts/organize.py "<目标文件夹>" --execute
    
  4. 报告结果:执行后告知各分类移动了多少个文件;如出现自动重命名(目标同名),一并说明。

选项(按用户需求选用)#

  • --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 及以上)
依赖
无