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

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

本篇文章中,我们将学习如何使用 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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

低代码如何降低门槛、快速交付、实现可持续IT架构?

目录 低代码开发模式期望达成的目标 1.降低开发门槛 2.加快系统交付 3.建立可持续发展的IT架构 写在最后 低代码的概念,最早提出的时间是在2014年左右,随后一直处于上升期,随着前两年阿里、腾讯的相继入场,竞争逐步加大。低代…

【Virtual Box】显示界面后无反应

本文记录本人在使用Virtual Box中遇到的问题 1.Virtual Box启动后无反应点击菜单栏是可用的,但界面里的无法操作 【解决方法】:以管理员身份启动virtual Box

零基础学编程,中文编程工具构件之弹出菜单构件教程,中文编程工具下载

一、前言: 零基础自学编程,中文编程工具下载,中文编程工具构件之扩展系统菜单构件教程 编程系统化教程链接https://jywxz.blog.csdn.net/article/details/134073098?spm1001.2014.3001.5502 给大家分享一款中文编程工具,零基础…

如何保持操纵机构丝杆的精度?

滚珠丝杆是操纵机构中的重要组成部分,可以传递较高的扭矩,并且具有低摩擦、高效率和快速响应的特性,这使得操纵机构能够实现高速、高精度的运动控制,这对于整个系统的性能和精度具有决定性的影响,保持操纵机构丝杆的精…

100G数据中心升级改造策略

视频流媒体的兴起和物联网设备的大幅增长带来数据量爆炸性增长,人们对算力的需求越来越大,网络的升级改造也成为每个数据中心关注的重点。为了应对网络压力,数据中心需要升级到100G及以上速率,为企业和用户提供高性能计算、存储和…

python读取所有sheet内容到另一个文件中

实现效果: 将原excel中的步骤、预期效果列按回车拆成多行数据,其余字段值填充其他数据 实现结果: # This is a sample Python script.# Press ShiftF10 to execute it or replace it with your code. # Press Double Shift to search everyw…

SpringBoot-监听Nacos动态修改日志级别

目录 一、pom文件 二、项目配置文件 三、日志配置文件 四、日志监听类 五、日志动态修改服务类 线上系统的日志级别一般都是 INFO 级别,有时候需要查看 WARN 级别的日志,所以需要动态修改日志级别。微服务项目中使用 Nacos 作为注册中心&#xff0c…

计算机与CFD模拟仿真:技术的融合与应用

计算机与CFD模拟仿真:技术的融合与应用 引言 随着科技的不断发展,计算机技术与计算流体力学(CFD)模拟仿真在各个领域的应用越来越广泛。本文将详细介绍计算机技术与CFD模拟仿真在各领域中的应用,包括航空航天、汽车设计、能源电力、环境工程等。通过深入探讨计算机技术与…

matplotlib可视化PCA后的重建图像及重建误差

代码 import numpy as np import matplotlib.pyplot as plt from sklearn.decomposition import PCA from sklearn.datasets import fetch_olivetti_faces# 加载Olivetti人脸数据集 data fetch_olivetti_faces() X data.data images data.images# 设置不同的PCA组件数 comp…

ENVI植被指数阈值法

植被指数阈值法提取纯净像元 首先用ENVI打开无人机遥感影像 1. 假彩色显示 打开数据管理工具,无人机的4波段为红边波段 2. 波段计算 打开band math,输入 float(b1-b2)/(b1b2) 选择对应波段 3. 阈值筛选 阈值按经验值选的0.7,ndvi…

Linux:dockerfile编写搭建mysql练习(10)

搭建了httpyum仓库 Dockerfile 主要文件 基于centos基础镜像 centos.repo yum仓库 db_init.sh mysql初始化脚本 run.sh 启动脚本 vim Dockerfile写入FROM centosMAINTAINER teacher lyRUN mkdir /etc/yum.repos.d/bak ; mv /etc/yu…

一个可用于临床的食管癌远处转移预测模型(shiny APP)

一个可用于临床的食管癌远处转移预测模型(APP) 最近将之前构建的一个预测食管癌远处转移模型制作成了APP(地址见文末),有一些思考,和大家分享如下: 1. 充分的说明 首先,对模型的…

Nacos与Eureka的区别

Nacos的服务实例分为两种l类型: 临时实例:如果实例宕机超过一定时间,会从服务列表剔除,默认的类型。非临时实例:如果实例宕机,不会从服务列表剔除,也可以叫永久实例。 配置一个服务实例为永久…

翻硬币(第四届蓝桥杯省赛C++B组)(java版)

//翻硬币,每次都会改变两个硬币的状态 //因此我们可以从前往后枚举,s1[i] 与 s2[i] 状态不同就改变它的状态 //同时s1[i 1] 与 s2[i 1] 的状态会因此改变 // 所以继续往下枚举s1[i 1] 与 s2[i 1] //因为题目有说必须有解,因此枚举到 n - 1位的时候,两个字符串的…

从印刷机到数据库:自动化如何提高生产力和改善生活

一文了解从自动化到数据库的前世今生。 作者:Kevin Kline 本文来源:https://www.dbta.com/,爱可生开源社区翻译。 本文约 2200 字,预计阅读需要 8 分钟。 自动化的历史 人类长期以来一直梦想着自动化的前景。我们最早的祖先将其想…

【C语言学习疑难杂症】第6期:C语言中如何打印一些特殊字符,比如打印扩展ascii码字符

首先我们来看下ascii表和ascii拓展表: ascii表中的字符只有128个,是从0-127,而拓展ascii表的内容是128-255。拓展表中它们都是一些特殊的字符,如果我们想答应ascii拓展码中的一些字符应该要怎么操作呢? 比如下面的代码: unsigned char a = 176, b = 219;printf("%…

音频/视频、信息和通信技术设备安全标准UL62368-1

UL 62368-1,第 3 版,2019 年 12 月 13 日- UL 音频/视频、信息和通信技术设备安全标准 - 第 1 部分:安全要求 IEC 62368 的这一部分适用于该领域内电气和电子设备的安全音频、视频、信息和通信技术,以及额定电压不超过 600 V 的商…

select选择框里填充图片,下拉选项带图片

遇到一个需求&#xff0c;选择下拉框选取图标&#xff0c;填充到框里 1、效果展示 2、代码 <el-form-item label"工种图标" class"Form_icon Form_label"><el-select ref"select" :value"formLabelAlign.icon" placeholder&…

2023.12.3 关于 Spring 拦截器 和 过滤器

目录 引言 Spring 拦截器实现 实例理解 Spring 过滤器实现 实例理解 拦截器和过滤器的区别 出身不同 触发时机不同 底层实现不同 支持的项目类型不同 使用场景不同 引言 原生 Spring AOP 实现统一拦截有两个难点难点一&#xff1a;定义拦截规则表达式 难点二&#…

双12取消!淘宝年终好价节对商家有何影响?电商直播到底怎么玩差异化?

&#xfeff;据淘宝商家服务大厅显示&#xff0c;今年“双12”活动取消&#xff0c;并更改为平台大型活动“淘宝年终好价节”。淘宝“双12”一直以来都是除了“双11”和“618”之外很重要的电商促销活动&#xff0c;该活动于2012年首次推出&#xff0c;至今已经持续进行了10年。…