【Python快速入门和实践017】Python常用脚本-根据文件后缀对其进行分类保存

news2024/9/22 7:25:43

一、功能介绍

        这段代码的功能是将源文件夹中的文件按照它们的文件扩展名分类并移动到不同的子文件夹中。步骤如下:

  1. 定义函数move_files_by_extension函数接收两个参数:

    • source_folder:源文件夹路径。
    • destination_folder:目标文件夹路径,文件将根据扩展名移动到此路径下的相应子文件夹中。
  2. 遍历文件:遍历source_folder中的所有文件。

  3. 检查文件类型:确保处理的对象是文件而不是文件夹。

  4. 提取扩展名:使用os.path.splitext函数提取文件的扩展名。

  5. 创建目标子文件夹:根据提取到的扩展名创建目标文件夹(如果不存在则创建)。

  6. 移动文件:使用shutil.move函数将文件从源文件夹移动到目标文件夹下的相应子文件夹。

代码详解

  1. 函数定义move_files_by_extension函数定义,接收两个参数。

  2. 文件遍历:使用os.listdir遍历source_folder中的所有文件。

  3. 文件检查:使用os.path.isfile检查当前处理的对象是否为文件。

  4. 提取扩展名:使用os.path.splitext函数分割文件名和扩展名,并获取扩展名部分。

  5. 创建目标子文件夹

    • 使用os.path.join构造目标子文件夹的路径。
    • 使用os.makedirs创建目标子文件夹,exist_ok=True表示如果子文件夹已经存在,则不报错。
  6. 移动文件

    • 使用shutil.move将文件从源文件夹移动到目标子文件夹。
    • 打印一条消息,指示文件移动的信息。
  7. 使用示例

    • 定义source_folderdestination_folder变量。
    • 调用move_files_by_extension函数,并传入相应的路径参数。

二、代码

import os
import shutil

def move_files_by_extension(source_folder, destination_folder):
    # 遍历源文件夹中的所有文件
    for filename in os.listdir(source_folder):
        source_path = os.path.join(source_folder, filename)

        # 确保是文件而不是文件夹
        if os.path.isfile(source_path):
            # 获取文件的后缀名
            _, extension = os.path.splitext(filename)

            # 创建目标文件夹(如果不存在)
            destination_subfolder = os.path.join(destination_folder, extension[1:])
            os.makedirs(destination_subfolder, exist_ok=True)

            # 构建目标路径
            destination_path = os.path.join(destination_subfolder, filename)

            # 移动文件
            shutil.move(source_path, destination_path)
            print(f"Moved: {filename} to {destination_subfolder}")

# 使用示例
source_folder = r"E:\pythonProject\pythonProject\houzhui"
destination_folder = r"E:\pythonProject\pythonProject\tiqu"
move_files_by_extension(source_folder, destination_folder)

改成你的路径即可,执行结果(如果不想移动源文件夹的东西,将shutil.move()改为shutil.copy()即可):

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2043401.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LLM + GraphRAG技术,赋能教育培训行业数字化创新

随着人工智能大模型时代的到来,LLM大语言模型、RAG增强检索、Graph知识图谱、Prompt提示词工程等技术的发展日新月异,也让各行各业更加期待技术带来的产业变革。 比如,教育培训行业,教师数量相对有限、学生个体差异较大&#xff…

数据结构第一天

数据结构基础知识 1.1 什么是数据结构 数据结构就是数据的逻辑结构以及存储操作 (类似数据的运算) 数据结构就教会你一件事:如何更有效的存储数据 1.2 数据 数据:不再是单纯的数字,而是类似于集合的概念。 数据元素:是数据的基本单…

怎样卸载python

python卸载干净的具体操作步骤如下: 1、首先打开电脑左下角开始菜单,点击“运行”选项,输入“cmd”。 2、输入“python --version”,得到一个程序的版本,按回车键。 3、点击下图程序。 4、然后在该页面中点击“uninst…

【投融界-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

8 自动类型转换、强制类型转换、整数数据溢出与模运算、浮点数精度丢失、类型转换值截断

目录 1 自动类型转换(隐式转换) 1.1 运算过程中的自动类型转换 1.1.1 转换规则 1.1.2 转换方向 1.1.3 案例演示 1.2 赋值时的自动类型转换 1.2.1 案例演示 2 强制类型转换(显式转换) 2.1 介绍 2.2 转换格式 2.3 转换规…

案例分享—国外毛玻璃效果UI设计案例

毛玻璃效果通过模糊和半透明特性,显著增强了UI界面的层次感和深度,使得元素之间界限清晰,同时赋予界面一种现代、高级的质感,提升了整体视觉吸引力。 该效果不仅美观,还通过柔和的色彩和光照效果营造出清新、轻松的氛围…

回归分析系列1-多元线性回归

03 多元线性回归 3.1 简介 多元线性回归是简单线性回归的扩展,允许我们同时研究多个自变量对因变量的影响。多元回归模型可以表示为: 其中,x1,x2,…,xp是 p 个自变量,β0 是截距,β1,β2,…,βp是对应的回归系数&…

【STM32项目】在FreeRtos背景下的实战项目的实现过程(一)

个人主页~ 这篇文章是我亲身经历的,在做完一个项目之后总结的经验,虽然我没有将整个项目给放出来,因为这项目确实也是花了米让导师指导的,但是这个过程对于STM32的实战项目开发都是非常好用的,可以说按照这个过程&…

Layout 布局组件快速搭建

文章目录 设置主题样式变量封装公共布局组件封装 Logo 组件封装 Menu 菜单组件封装 Breadcrumb 面包屑组件封装 TabBar 标签栏组件封装 Main 内容区组件封装 Footer 底部组件封装 Theme 主题组件 经典布局水平布局响应式布局搭建 Layout 布局组件添加 Layout 路由配置启动项目 …

关于Idea中的debug模式只能执行一次的问题

希望文章能给到你启发和灵感~ 如果觉得文章对你有帮助的话,点赞 关注 收藏 支持一下博主吧~ 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、为什么debug模式只有生效一次三、补充说明其他调试功能四、最后 开篇说明 记录一…

设计模式学习优质网站分享:refactoring.guru

地址 英文版地址:https://refactoring.guru/design-patterns 中文版地址:https://refactoringguru.cn/design-patterns 介绍 这个网站是专门学习 设计模式 和 软件重构 的网站 整体来说并不花哨,但我觉得他最大的优点就是: 概…

PyTorch 基础学习(2)- 张量 Tensors

PyTorch张量简介 张量是数学和计算机科学中的一个基本概念,用于表示多维数据,是AI世界中一切事物的表示和抽象。可以将张量视为一个扩展了标量、向量和矩阵的通用数据结构。以下是对张量的详细解释: 张量的定义 标量(0阶张量&am…

Assembly(七)实验环境搭建

本篇文章将讲解在win11环境下的王爽老师的汇编语言的环境搭建 首先凑齐这些文件: 随后安装好Dosbox,去官网下载就好 打开箭头所指文件 找到文件最后部分 [autoexec] # Lines in this section will be run at startup. # You can put your MOUNT lines here. MOUNT C D:\Debug …

快速搭建Vue_cli以及ElementUI简单项目学生管理系统雏形

为了帮助大家快速搭建Vue_cli脚手架还有ElementUI的简单项目,今天我给大家提供方法. 因为这个搭建这个项目步骤繁多,容易忘记,所以给大家提供这个资料希望可以帮助到你们. 废话不多说开始搭建项目: 搭建Vue_cli项目 首先点开HBuilder左上角的文件点击新建,点击项目,选择vue项…

2024年人工智能固态硬盘采购容量预计超过45 EB

根据TrendForce发布的最新市场报告,人工智能(AI)服务器客户在过去两个季度显著增加了对企业级固态硬盘(SSD)的订单。为了满足AI应用中不断增长的SSD需求,上游供应商正在加速工艺升级,并计划在20…

智慧交通物联网应用,5G路由器赋能高速道路监控数据传输

高速道路为了保障交通的高速、安全运行,沿线部署了控制设施、监视设施、情报设施、传输设施、显示设施及控制中心等。在传统的高速管理中,这些设施的传输设施多采用光纤线缆进行数据传输,但高速道路覆盖范围广、距离远,布线与施工…

韩顺平 集合

集合 一、体系结构图二、Collection2.1 Collection 接口和常用方法2.2 集合遍历2.2.1 迭代器2.2.2 增强for循环 三、List接口及其常用方法3.1 三种遍历方式3.2 ArrayList3.3 LinkedList 四 MAP4.1 hashmap 一、体系结构图 集合主要是两组 单列和双列集合 Collection接口有两个重…

第十五章:高级调度

本章内容包括: 使用节点污点和pod容忍度组织pod调度到特定节点将节点亲和性规则作为节点选择器的一种替代使用节点亲和性进行多个pod的共同调度使用节点非亲和性来分离多个pod Kubernetes允许你去影响pod被调度到哪个节点。起初,只能通过在pod规范⾥指定…

Linux安装Nginx后,无法解析Windows主机Hosts文件

问题展示: 配置好Linux的Nginx配置后,Windows同样配置好host,而通过浏览器只能用IP地址成功访问,而域名则不行 解决方法: 点击Windows图标,搜索记事本,选择以管理员身份运行,编辑…

php-xlswriter实现数据导出excel单元格合并,内容从指定行开始写

最终效果图: 代码: public function export_data() {$list $this->get_list_organ();$content [];$content[] []; // 第2行不设置内容,设置为空foreach ($list as $key > $value) {$content[] [$value[organ_name], $value[clas…