Python 自动化办公:文件快速整理分类

news2024/12/23 0:07:32

平时桌面或文件夹内鱼龙混杂,各种类型的文件都有怎么办?

本篇文章中,我们将学习如何使用 Python 编写一个文件整理分类的脚本

该脚本能够自动获取文件类型,并将文件按照类型整理到不同的子文件夹中。

先看下效果,整理前各种类型文件都有:

在这里插入图片描述
整理后,根据文件类型放置到了不同的文件夹中
在这里插入图片描述
那下面正式开始上代码:

1. 安装必要的库

首先,确保你已经安装了 shutil 和 os 库。如果没有安装,可以使用以下命令进行安装:

pip install shutil

2. 编写整理分类脚本

下面是文件整理分类脚本的完整代码,可直接使用,输入需要整理的文件夹路径即可:

import os
import shutil

def get_file_type(file_path):
    # 获取文件扩展名
    _, file_extension = os.path.splitext(file_path)
    return file_extension.lower()

def organize_files(input_folder):
    # 获取输入文件夹中的所有文件
    files = os.listdir(input_folder)

    # 遍历每个文件
    for file in files:
        # 构建文件的完整路径
        file_path = os.path.join(input_folder, file)

        # 判断是否是文件
        if os.path.isfile(file_path):
            # 获取文件类型
            file_type = get_file_type(file_path)

            # 构建目标文件夹路径
            target_folder = os.path.join(input_folder, file_type + '类')

            # 如果目标文件夹不存在,创建它
            if not os.path.exists(target_folder):
                os.makedirs(target_folder)

            # 构建目标文件路径
            target_file_path = os.path.join(target_folder, file)

            # 移动文件到目标文件夹
            shutil.move(file_path, target_file_path)

# 使用示例
organize_files('files')

3. 代码详解

get_file_type 函数

def get_file_type(file_path):
    # 获取文件扩展名
    _, file_extension = os.path.splitext(file_path)
    return file_extension.lower()

这个函数接受文件路径作为参数,使用 os.path.splitext 获取文件的扩展名(例如 .pdf、.jpg),并返回小写的扩展名。

organize_files 函数

def organize_files(input_folder):
    # 获取输入文件夹中的所有文件
    files = os.listdir(input_folder)

    # 遍历每个文件
    for file in files:
        # 构建文件的完整路径
        file_path = os.path.join(input_folder, file)

        # 判断是否是文件
        if os.path.isfile(file_path):
            # 获取文件类型
            file_type = get_file_type(file_path)

            # 构建目标文件夹路径
            target_folder = os.path.join(input_folder, file_type + '类')

            # 如果目标文件夹不存在,创建它
            if not os.path.exists(target_folder):
                os.makedirs(target_folder)

            # 构建目标文件路径
            target_file_path = os.path.join(target_folder, file)

            # 移动文件到目标文件夹
            shutil.move(file_path, target_file_path)

这个函数接受一个输入文件夹路径,使用 os.listdir 获取该文件夹中的所有文件。

然后,遍历每个文件,获取文件类型并自动创建对应的文件夹,最后将文件移动到相应的文件夹中。

4. 运行脚本

保存以上代码到一个文件(例如 organize_files.py),然后在终端或者编辑器中运行脚本:

python organize_files.py

脚本将会处理指定文件夹中的文件,按照文件类型分类整理。

通过这个文件整理分类脚本,你可以方便地将一个混杂的文件夹整理成按照类型分类的结构。

有所收益,欢迎关注,持续更新,一起进步~

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

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

相关文章

新的 BLUFFS 攻击导致蓝牙连接不再私密

蓝牙是一种连接我们设备的低功耗无线技术,有一个新的漏洞需要解决。 中间的攻击者可以使用新的 BLUFFS 攻击轻松窥探您的通信。 法国研究中心 EURECOM 的研究员 Daniele Antonioli 演示了六种新颖的攻击,这些攻击被定义为 BLUFFS(蓝牙转发和…

渗透测试学习day4

文章目录 靶机:SequelTask1Task2Task3Task4Task5Task6Task7Task8 靶机:CrocodileTask1Task2Task3Task4Task5Task6Task7Task8Task9Task10 靶机:ResponderTask1Task2Task3Task4Task5Task6Task7Task8Task9Task10Task11 靶机:ThreeTas…

使用百度开发者平台处理语音朗读

--TIME --百度开发者中心-汇聚、开放、助力、共赢 --注册账号 -- 准备工作 准备工作 更新时间:2023-01-13 成为开发者 三步完成账号的基本注册与认证: STEP1:点击进入控制台,选择需要使用的AI服务项。若为未登录状态&#xf…

CleanMyMac X2024破解注册激活码

CleanMyMac X for Mac中文2024版只需两个简单步骤就可以把系统里那些乱七八糟的无用文件统统清理掉,节省宝贵的磁盘空间。 cleanmymac x个人认为X代表界面上的最大升级,功能方面有更多增加,与最新macOS系统更加兼容,流畅地与系统性…

MacBook Pro 安装Redis【超详细图解】

目录 一、使用brew安装Redis 二、查看安装及配置文件位置 三、启动Redis 3.1 查看redis服务进程 3.2 redis-cli连接redis服务 四、关闭Redis 因项目需要,顺便记录安装过程 一、使用brew安装Redis brew install redis 如图所示即为安装成功! 二…

csdn语法说明/csdn新手指导/csdn入门指导/csdn博文助手

文章目录 1、文章目录2、标题3、文本样式3.1、强调、加粗、黄色标记、删除、引用、乘方,化学表达式3.2、标红、按钮效果 4、功能快捷键5、注脚、注释6、链接7、图片8、列表9、表格 本篇博文主要写一下csdn博文中的语法说明。 1、文章目录 [TOC](这里写自定义目录标…

谈谈压测方案的那点事

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

论文解读:EfficientViT-提高吞吐量

摘要 要解决的问题 Vision transformers have shown great success due to their high model capabilities. However, their remarkable performance is accompanied by heavy computation costs, which makes them unsuitable for real-time applications. vit计算开销大&a…

人工智能学习7(决策树算法)

编译工具:PyCharm 文章目录 编译工具:PyCharm 决策树算法信息熵信息熵例题计算: 信息增益(决策树划分依据之一ID3)信息增益例题计算: 信息增益率(决策树划分依据之一C4.5)基尼值和基尼指数(决策树划分依据之…

蓝桥杯物联网竞赛_STM32L071KBU6_全部工程及源码

包含stm32L071kbu6全部实验工程、源码、原理图、官方提供参考代码及原理图 链接:https://pan.baidu.com/s/1xm8mLotLBvOULQlg76ca7g?pwdp0mx 提取码:p0mx

边缘计算网关构建智慧楼宇新生态,打造未来建筑管理

边缘计算网关在无人值守环境中的应用十分广泛,尤其在智慧楼宇管理方面发挥着重要作用。它能够实现多个地点多楼宇之间的数据实时互通,通过边缘计算网关物联网应用构建智慧楼宇生态系统,解决传统楼宇管理网络布线、人员巡检以及后期运维等问题…

SQL Server 数据库,创建数据表(使用T-SQL语句)

2.3表的基本概念 表是包含数据库中所有数据的数据库对象。数据在表中的组织方式与在电子表格中相似,都是 按行和列的格式组织的,每行代表一条唯一的记录,每列代表记录中的一个字段.例如,在包含公 司员工信息的表中,每行…

深度学习模型部署与优化:关键考虑与实践策略

4. 深度学习模型部署与优化:关键考虑与实践策略 4.1 FLOPS TOPS 首先,我们来解释FLOPS和TOPS的含义: FLOPS:是Floating Point Operations Per Second的缩写,意思是每秒浮点运算次数。它是衡量计算机或计算设备在每秒…

深入理解JVM虚拟机第二十七篇:详解JVM当中InvokeDynamic字节码指令,Java是动态类型语言么?

😉😉 学习交流群: ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 🥭🥭3:QQ群:583783824 📚📚 工作微信:BigTreeJava 拉你进微信群,免费领取! 🍎🍎4:本文章内容出自上述:Sp…

前端漏洞--front(系统有user1/user1,admin1/admin1两个用户)

任务一:挖掘反射型XSS漏洞(以弹窗test13)证明 任务二:复现环境中的CSRF漏洞,设计表单,当管理员点击URL后自动将自己密码重置为:123456 任务三:复现环境中的JSON Hijacking漏洞&#…

【MySQL环境配置在虚拟机中】

MySQL环境配置在虚拟机中 先检查虚拟机中是否有MySQL在线安装1.下载yum Repository2.安装yum Repository3.安装mysql5.7的服务4.开机自启动5.启动mysql6.查看状态7.获取临时密码8.登录mysql9.关闭密码复杂验证10.设置密码11.修改权限12.卸载yum Repository 离线安装1.先找一下机…

【题目】栈和队列专题

文章目录 专题一:栈系列1. 中缀表达式转后缀表达式(逆波兰式)2. 有效的括号3. 用栈实现队列4. 最小栈 专题一:栈系列 1. 中缀表达式转后缀表达式(逆波兰式) 算法原理 2. 有效的括号 题目链接 算法原理 代…

uniapp:如何使用uCharts

目录 第一章 前言 第二章 安装插件uCharts 第三章 使用uCharts 第四章 注意 第一章 前言 需求:这是很久之前的一个项目的需求了,当时我刚接触app,有这么一个需求,在uniapp写的app项目中做一些图表统计,最开始以为…

基础堆溢出原理与DWORD SHOOT实现

堆介绍 堆的数据结构与管理策略 程序员在使用堆时只需要做三件事情:申请一定大小的内存,使用内存,释放内存。 对于堆管理系统来说,响应程序的内存使用申请就意味着要在"杂乱"的堆区中"辨别"出哪些内存是正在…

登录校验过滤器

会话技术 JWT令牌 过滤器Filter 拦截器 interceptor cookise package com.it.controller;import com.it.pojo.Result; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.Re…