事情是这样的
前两天想找个上周下载的发票,结果在下载文件夹里翻了半天。
满屏都是这玩意儿:
新建文本文档 (3).txtimage_20260825_172341.png最终版_真的不改了_v7.pdf一堆乱码的压缩包.zip
我当场就破防了。
为了“效率至上”的信仰,连个下载文件夹都管不好,说出去都丢人。
于是决定花点时间,彻底解决这个问题。
需求很简单
我就想要一个脚本,每次运行的时候,自动把下载文件夹里的文件按类型分到不同子目录里:
- 图片 →
Pictures/ - 文档(PDF、Word、Excel)→
Documents/ - 压缩包 →
Archives/ - 安装包(exe、dmg)→
Installers/ - 代码文件 →
Codes/ - 其他 →
Others/
而且不能动那些还在下载中的临时文件(比如 .crdownload),别给人家整坏了。
开工
Python 写这种小脚本真的舒服。核心就三步:
- 遍历文件夹
- 根据扩展名判断类型
- 移动文件
1 | import os |
就这么点代码,甚至没写注释(好孩子别学)。
用起来什么感觉
第一次运行的时候,看着终端里一行一行刷过去的文件名,有种“家里终于被保洁阿姨收拾干净”的爽感。
之后再下载东西,隔几天跑一次这个脚本,下载文件夹永远整整齐齐。
还可以把脚本顺手把它加到了 crontab 里,每周日凌晨自动跑一次,完全无感知。
1 | 0 3 * * 0 cd /path/to/script && python3 organize_downloads.py |
现在的下载文件夹长期保持清爽,再也不怕别人借我电脑时看到那一堆“新建文件夹”了。
还能玩出什么花
如果你觉得光按扩展名分类太粗犷,还可以:
· 按日期建子文件夹(比如 2026-08/)
· 识别图片尺寸,把截图和壁纸分开
· 对 PDF 用 PyPDF2 读取标题,自动重命名
· 甚至识别文件 hash,自动去重
不过,够用就行。再复杂就变成一个项目了,为了整理文件再搭个数据库(笑)。
最后说两句
这个脚本总共就 40 来行,但解决了咱困扰的问题,兴趣爱好是最好的老师。
有时候不一定非要搞个大新闻,写点小东西让日常生活舒服一点点,也挺有成就感的。
如果你也有类似的需求,直接复制上面的代码,把 DOWNLOAD_DIR 改成你自己的路径就能用。
试试看,还你一个干净的下!载!文!件!夹!
感谢阅读,么么哒~