网站首页 > 基础教程 正文
大家好,今天给大家分享一个实用的Python脚本,可以帮助你快速整理电脑中的文件,将图片、文档、视频、音乐和压缩包等不同类型的文件自动分类到各自的文件夹中。
详细步骤
首先,我们导入所需的库:os、shutil 和 pathlib。os 和 shutil 库用于文件操作,pathlib 则提供了更方便的路径操作方式。
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("桌面整理完成!")
猜你喜欢
- 2025-03-10 go语言text/template标准库
- 2025-03-10 Python 的os和shutil包简介
- 2025-03-10 前端代码质量-圈复杂度原理和实践
- 2025-03-10 近2万字详解JAVA NIO2文件操作,过瘾
- 2025-03-10 这两个Python库,轻而易举就能实现MP4与GIF格式互转,太好用了
- 2025-03-10 Python之Pandas使用系列(八):读写Excel文件的各种技巧
- 2025-03-10 Python 实现 批量 复制指定PDF文件 到指定文件夹并批量打印出来
- 2025-03-10 深入理解 Linux 位置无关代码 PIC
- 2025-03-10 什么是微调?如何用微调模型完成图像分类?
- 2025-03-10 为机器学习模型设置最佳阈值:0.5是二元分类的最佳阈值吗
- 03-10extern "C"用法详解
- 03-10嵌入式C语言基础编程—5年程序员给你讲函数,你真的懂函数吗?
- 03-10C++知识点 13:extern“C”
- 03-10go语言text/template标准库
- 03-10Python 的os和shutil包简介
- 03-10前端代码质量-圈复杂度原理和实践
- 03-10近2万字详解JAVA NIO2文件操作,过瘾
- 03-10这两个Python库,轻而易举就能实现MP4与GIF格式互转,太好用了
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)