用Python写一个自动整理下载文件夹的小脚本,告别杂乱无章

举报
yd_274341061 发表于 2026/11/03 14:24:09 2026/11/03
【摘要】 下载文件夹总是越堆越乱?各种文件混在一起,找起来特别费劲。今天分享一个用 Python 写的自动整理脚本,几行代码就能按类型把文件分类归档。## 一、思路原理很简单:根据文件扩展名判断类型,然后移动到对应的分类文件夹里。比如图片丢到 Pictures、文档丢到 Documents、压缩包丢到 Archives。## 二、核心代码```pythonimport osimport shutilf...

下载文件夹总是越堆越乱?各种文件混在一起,找起来特别费劲。今天分享一个用 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 基础。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。