0

0

Python 文件批量分类存储案例

舞姬之光

舞姬之光

发布时间:2025-11-18 22:16:57

|

340人浏览过

|

来源于php中文网

原创

使用Python可自动按扩展名分类文件:通过os和shutil模块遍历“待整理文件”目录,根据预定义的file_categories映射关系,将.txt、.jpg等文件分别移入“文本文件”“图片文件”等子文件夹,未匹配的归入“其他文件”,实现高效批量整理。

python 文件批量分类存储案例

在日常工作中,我们经常需要将大量文件按照特定规则分类存储。Python 提供了强大的文件操作能力,可以轻松实现文件的批量分类整理。下面通过一个实际案例,展示如何使用 Python 将指定目录中的文件按扩展名自动归类到不同的子文件夹中。

需求说明

假设有一个名为 "待整理文件" 的文件夹,里面混杂着多种类型的文件(如 .txt、.jpg、.pdf 等)。我们的目标是编写一段 Python 脚本,自动读取该文件夹中的所有文件,并根据文件后缀名创建对应的分类文件夹(如 "文本文件" 对应 .txt,"图片文件" 对应 .jpg/.png 等),然后将文件移动进去。

实现步骤

以下是完成该任务的关键步骤和代码逻辑:

1. 导入所需模块

立即学习Python免费学习笔记(深入)”;

使用 osshutil 模块进行路径操作和文件移动:

  • os:用于遍历文件、判断路径是否存在
  • shutil:用于移动文件

2. 定义文件类型映射

建立扩展名与目标文件夹名称的映射关系,便于统一管理:

装修公司企业网站源码2.0
装修公司企业网站源码2.0

装修公司源码,采用DIV+CSS布局,首页顶部采用了超大宽屏banner焦点图切换,带伸缩功能的导航条。首页信息展示量大,有利于SEO优化,首页版块包括,导航,焦点图切换,案例,行业动态,装修经验,装修知识。源码支持伪静态,后台开启即可,服务器必须支持rewrite功能,否则无法实现伪静态功能。信息支持二级分类。后台支持信息批量修改,删除,可以支持,视频,图片,附件上传。

下载
file_categories = {
    '文本文件': ['.txt', '.log'],
    '图片文件': ['.jpg', '.jpeg', '.png', '.gif', '.bmp'],
    '文档文件': ['.pdf', '.doc', '.docx', '.ppt', '.pptx'],
    '表格文件': ['.xls', '.xlsx', '.csv'],
    '音频文件': ['.mp3', '.wav', '.aac'],
    '视频文件': ['.mp4', '.avi', '.mkv']
}

3. 遍历并分类文件

扫描源目录中的每个文件,提取扩展名,匹配分类,然后移动到对应文件夹:

  • 使用 os.listdir 获取所有文件名
  • 用 os.path.splitext 分离文件名和扩展名
  • 根据扩展名查找所属分类
  • 若目标文件夹不存在,则创建
  • 使用 shutil.move 移动文件

完整代码示例

以下是一个可直接运行的脚本模板:

import os
import shutil
<h1>源文件夹路径</h1><p>source_dir = '待整理文件'</p><h1>文件分类映射</h1><p>file_categories = {
'文本文件': ['.txt', '.log'],
'图片文件': ['.jpg', '.jpeg', '.png', '.gif', '.bmp'],
'文档文件': ['.pdf', '.doc', '.docx', '.ppt', '.pptx'],
'表格文件': ['.xls', '.xlsx', '.csv'],
'音频文件': ['.mp3', '.wav', '.aac'],
'视频文件': ['.mp4', '.avi', '.mkv']
}</p><h1>遍历源目录</h1><p>for filename in os.listdir(source_dir):
file_path = os.path.join(source_dir, filename)</p><pre class="brush:php;toolbar:false;"># 确保是文件而不是文件夹
if os.path.isfile(file_path):
    # 获取小写扩展名
    _, ext = os.path.splitext(filename)
    ext = ext.lower()

    # 匹配分类
    moved = False
    for folder_name, extensions in file_categories.items():
        if ext in extensions:
            target_folder = os.path.join(source_dir, folder_name)
            if not os.path.exists(target_folder):
                os.makedirs(target_folder)
            shutil.move(file_path, os.path.join(target_folder, filename))
            moved = True
            break

    # 其他未定义类型归入“其他文件”
    if not moved:
        other_folder = os.path.join(source_dir, '其他文件')
        if not os.path.exists(other_folder):
            os.makedirs(other_folder)
        shutil.move(file_path, os.path.join(other_folder, filename))

print("文件分类整理完成!")

使用建议

这个脚本可以根据实际需求灵活调整:

  • 修改 source_dir 指向你的目标文件夹
  • 增减 file_categories 中的类别和扩展名
  • 可加入日志记录或异常处理增强稳定性
  • 结合定时任务实现自动化整理

基本上就这些。不复杂但容易忽略细节,比如扩展名大小写、文件夹重复创建等问题,只要提前考虑清楚,就能让文件管理变得更高效。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

192

2023.09.27

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

17

2026.02.03

PHP 命令行脚本与自动化任务开发
PHP 命令行脚本与自动化任务开发

本专题系统讲解 PHP 在命令行环境(CLI)下的开发与应用,内容涵盖 PHP CLI 基础、参数解析、文件与目录操作、日志输出、异常处理,以及与 Linux 定时任务(Cron)的结合使用。通过实战示例,帮助开发者掌握使用 PHP 构建 自动化脚本、批处理工具与后台任务程序 的能力。

62

2025.12.13

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

2

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

8

2026.03.03

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

68

2026.02.28

Golang 工程化架构设计:可维护与可演进系统构建
Golang 工程化架构设计:可维护与可演进系统构建

Go语言工程化架构设计专注于构建高可维护性、可演进的企业级系统。本专题深入探讨Go项目的目录结构设计、模块划分、依赖管理等核心架构原则,涵盖微服务架构、领域驱动设计(DDD)在Go中的实践应用。通过实战案例解析接口抽象、错误处理、配置管理、日志监控等关键工程化技术,帮助开发者掌握构建稳定、可扩展Go应用的最佳实践方法。

59

2026.02.28

Golang 性能分析与运行时机制:构建高性能程序
Golang 性能分析与运行时机制:构建高性能程序

Go语言以其高效的并发模型和优异的性能表现广泛应用于高并发、高性能场景。其运行时机制包括 Goroutine 调度、内存管理、垃圾回收等方面,深入理解这些机制有助于编写更高效稳定的程序。本专题将系统讲解 Golang 的性能分析工具使用、常见性能瓶颈定位及优化策略,并结合实际案例剖析 Go 程序的运行时行为,帮助开发者掌握构建高性能应用的关键技能。

46

2026.02.28

Golang 并发编程模型与工程实践:从语言特性到系统性能
Golang 并发编程模型与工程实践:从语言特性到系统性能

本专题系统讲解 Golang 并发编程模型,从语言级特性出发,深入理解 goroutine、channel 与调度机制。结合工程实践,分析并发设计模式、性能瓶颈与资源控制策略,帮助将并发能力有效转化为稳定、可扩展的系统性能优势。

24

2026.02.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.5万人学习

Django 教程
Django 教程

共28课时 | 4.7万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号