用Python写一个自动整理下载文件夹的小脚本,告别杂乱无章
下载文件夹总是越堆越乱?各种文件混在一起,找起来特别费劲。今天分享一个用 Python 写的自动整理脚本,几行代码就能按类型把文件分类归档。
## 一、思路
原理很简单:根据文件扩展名判断类型,然后移动到对应的分类文件夹里。比如图片丢到 Pictures、文档丢到 Documents、压缩包丢到 Archives。
## 二、核心代码
```python
import os
import shutil
from pathlib import Path
# 定义文件分类规则
RULES = {
"图片": [".jpg", ".jpeg", ".png", ".gif", ".webp"],
"文档": [".pdf", ".docx", ".xlsx", ".pptx", ".txt", ".md"],
"压缩包": [".zip", ".rar", ".7z", ".tar.gz"],
"视频": [".mp4", ".avi", ".mkv", ".mov"],
"音频": [".mp3", ".wav", ".flac", ".aac"],
"程序": [".py", ".js", ".html", ".sh", ".exe", ".dmg"],
}
def organize(download_dir):
for item in os.listdir(download_dir):
path = Path(download_dir) / item
if path.is_dir():
continue # 跳过文件夹
ext = path.suffix.lower()
for folder, exts in RULES.items():
if ext in exts:
target = Path(download_dir) / folder
target.mkdir(exist_ok=True)
shutil.move(str(path), str(target / item))
print(f"已移动: {item} -> {folder}/")
break
else:
# 未匹配的类型放到"其他"
other = Path(download_dir) / "其他"
other.mkdir(exist_ok=True)
shutil.move(str(path), str(other / item))
print(f"已移动: {item} -> 其他/")
if __name__ == "__main__":
organize("~/Downloads")
```
## 三、使用方式
1. 把代码保存为 organize.py
2. 修改最后一行里的路径为你自己的下载目录
3. 运行 python3 organize.py
## 四、进阶玩法
- 配合定时任务(cron)每周自动跑一次
- 按日期归档:把文件按修改月份放到 2026-11 这样的文件夹
- 处理重名文件:如果目标已有同名文件,自动加序号后缀
## 总结
这个脚本虽然简单,但非常实用,写完一次就能长期用。如果你也想让下载文件夹变得整洁,不妨自己动手试试,还能顺便练练 Python 基础。
- 点赞
- 收藏
- 关注作者
评论(0)