专业编程基础技术教程

网站首页 > 基础教程 正文

Python技巧之实现智能文件整理,轻松分类图片、文档、视频等

ccvgpt 2025-03-10 12:50:40 基础教程 3 ℃

大家好,今天给大家分享一个实用的Python脚本,可以帮助你快速整理电脑中的文件,将图片、文档、视频、音乐和压缩包等不同类型的文件自动分类到各自的文件夹中。

详细步骤

首先,我们导入所需的库:os、shutil 和 pathlib。os 和 shutil 库用于文件操作,pathlib 则提供了更方便的路径操作方式。

Python技巧之实现智能文件整理,轻松分类图片、文档、视频等

import os
import shutil
from pathlib import Path

接下来,我们定义一个函数 smart_organize,它接受一个参数 folder_path,即需要整理的文件夹路径。在函数内部,我们首先确保 folder_path 是一个 Path 对象,这样我们可以使用 pathlib 提供的丰富方法。

然后,我们定义一个分类映射 category_map,它是一个字典,键是文件类型(如图片、文档等),值是该类型文件的扩展名列表。这样,我们可以根据文件的扩展名来判断它属于哪个类别。

def smart_organize(folder_path):
    # 确保 folder_path 是一个 Path 对象
    folder_path = Path(folder_path)

    category_map = {
        "图片": [".jpg", ".png", ".webp"],
        "文档": [".pdf", ".docx", ".xlsx"],
        "视频": [".mp4", ".mov", ".mkv"],
        "音乐": [".mp3", ".wav", ".flac"],
        "压缩包": [".zip", ".rar", ".7z"]
    }

接下来,我们遍历 folder_path 文件夹中的所有文件。对于每个文件,我们获取它的扩展名,并在 category_map 中查找它所属的类别。如果找到了对应的类别,我们就将文件移动到该类别的文件夹中;如果没有找到,我们就将文件移动到一个名为“其他”的文件夹中。

for item in folder_path.glob('*'):
        if item.is_file():
            ext = item.suffix.lower()
            dest_dir = next(
                (folder_path/ctg for ctg, exts in category_map.items() if ext in exts),
                folder_path/"其他"
            )
            dest_dir.mkdir(exist_ok=True)
            shutil.move(str(item), str(dest_dir/item.name))

最后,我们提供了一个使用示例,整理桌面上的文件。只需将 smart_organize 函数的参数设置为你的桌面路径即可。运行脚本后,你的桌面上的文件就会被自动分类整理。

# 使用示例(整理桌面)
smart_organize("C:/Users/ADMIN/Desktop")
print("桌面整理完成!")

所有代码

import os
import shutil
from pathlib import Path

def smart_organize(folder_path):
    # 确保 folder_path 是一个 Path 对象
    folder_path = Path(folder_path)

    category_map = {
        "图片": [".jpg", ".png", ".webp"],
        "文档": [".pdf", ".docx", ".xlsx"],
        "视频": [".mp4", ".mov", ".mkv"],
        "音乐": [".mp3", ".wav", ".flac"],
        "压缩包": [".zip", ".rar", ".7z"]
    }

    for item in folder_path.glob('*'):
        if item.is_file():
            ext = item.suffix.lower()
            dest_dir = next(
                (folder_path/ctg for ctg, exts in category_map.items() if ext in exts),
                folder_path/"其他"
            )
            dest_dir.mkdir(exist_ok=True)
            shutil.move(str(item), str(dest_dir/item.name))

# 使用示例(整理桌面)
smart_organize("C:/Users/ADMIN/Desktop")
print("桌面整理完成!")

Tags:

最近发表
标签列表