本地文件整理归类
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f8db3131/local-file-organizer-v2。
技能介绍
当用户说「整理下这个文件夹」或「把桌面文件归类」时,最常见的现场是:E 盘或桌面上堆着几百个文件,一部分是重复副本,一部分文件名是 UUID 或时间戳,和内容完全无关,另一些则散落在不同目录但属于同一项目。手工处理不仅慢,而且一旦误删就不可逆。这个技能把「扫描—规划—确认—备份—执行—校验」拆成一套可重复的流程,用于在本地目录上做文件盘点和整理。
工作方式
整个流程从只读扫描开始。scripts/scan_dedup.py 会列出目录中的文件,计算大小和 md5,检测目录内部的重复,也能跨目录对比目标文件夹找重。扫描阶段不会移动或删除任何文件,盘点结果输出为 scan.json。
接着处理「名不副实」的文件。scripts/extract_titles.py 从 PDF、DOCX、XLSX、ZIP、HTML 中提取可读标题,为那些随机命名的文件提出有意义的文件名候选。图片不在处理范围内,因为没有 OCR。
分类阶段是 dry-run:scripts/classify.py 读取 scan.json,依据 references/category_scheme.md 中的规则表把每个文件映射到类别。使用者可以先看一遍 dry-run 结果,再按需调整规则表,而不是直接对文件动手。
规划完成后,删除、重命名和移动三类操作会被合并成一份计划 JSON,以 markdown 表格呈现给用户确认。只有在收到明确确认后,才会执行下一步:先用 scripts/backup_dir.py 把整个源目录复制到带日期的备份文件夹,并核对文件数量;然后 scripts/organize_run.py 才开始工作——它先确认备份存在,再把重复文件送入回收站(通过 scripts/safe_delete.py,删除只走 FOF_ALLOWUNDO),随后执行重命名和移动,最后校验源目录是否清空、目标目录数量是否正确、重命名后的文件是否存在。
安全边界与注意点
这套流程中,几条规则是硬约束。扫描严格只读;任何破坏性操作之前必须有完整计划和用户确认;删除只能进回收站,绝不在个人目录上执行 rm、del 或 shutil.rmtree;操作按小批次进行,每次运行后都校验结果状态。
分类规则是可以自定义的。仓库附带的示例是环境影响评价方向的 18 类分类法,实际使用时需要按自己的领域改写 references/category_scheme.md 中的 RULES 字典。内容提取依赖 pdfminer.six、python-docx 和 openpyxl,其余脚本只依赖标准库,运行时没有网络调用。
适用场景
适合个人电脑上积压已久、结构混乱的目录,尤其是需要合并两个文件夹并去重的情况。不适用于需要 OCR 的图片归档,也不应被当作无人值守的后台清理工具——每一份计划都应当被看到、被确认,再去执行。
使用场景
- 桌面堆满下载和临时文件,想把文件按类别移动到不同文件夹,先看到计划再执行
- E 盘有多个目录混杂文档和表格,需要合并到一处并把重复文件移入回收站
- 文件名是 UUID 或时间戳,内容却是 PDF 或 Excel,想按文件内标题批量重命名
- 要合并两个文件夹但担心误删,希望先备份并核对文件数量,再分批移动并验证结果
适合人员
- 桌面和下载文件夹长期混乱,希望先看到整理计划再动手的个人用户
- 需要合并多个项目文件夹并去重,且要求可回滚备份的运维或行政人员
- 文件命名被导出工具打乱,希望按文档内容标题批量恢复可读文件名的分析师
- 想按自定义分类表把档案归档,并希望删除只能进回收站的谨慎型用户