Python文件自动分类

假如这样的步骤全部手动做下来耗时是6秒,在文件数量不多的情况下,比如10个文件,总共耗时一分钟其实是能够接受的。
    但当文件数量特别多时,或者这个操作特别频繁每天都要做十几二十次时,手动操作就会变得耗时又繁琐,这时使用Python来解决优势就比较明显了:
1. 代码编写是一次性投入

2. 不论多少文件都只需要运行一次程序
3. 大量的文件执行也很快
4. 程序一直后台运行便可以自动处理

Firstpart:获取待分类文件列表,循环遍历

了解基础知识

现在我们常用的计算机系统分为Windows系统macOS系统

在开始动手解决问题之前,我们需要先学习一下与文件相关的基本概念。
路径(Path) 用来表示文件或文件夹的位置。
当我们需要访问文件或文件夹时,路径就像现实中的地址一样,帮助我们找到目标文件或文件夹在什么位置。

在Windows系统的路径中,我们使用反斜线“\”分隔各个文件夹和文件名。
同时,在路径的最前面,是
盘符的字母和一个英文冒号,表示文件或文件夹具体是在哪个盘的路径下。

而在macOS系统中,文件夹和文件名使用正斜线”\”进行分隔。
需要注意的是,macOS系统中,没有盘符的概念,所有的路径都是从根目录( / ) 开始。

不管是何系统,除了文件路径有所差异,其它的知识点和操作步骤都是通用的。

 

学习了路径相关的知识之后,让我们回到阿文要解决的问题:文件自动化分类。
os 模块可用于文件处理操作,os 模块是Python的内置模块,不需要安装可以直接导入。
我们要对文件进行处理,首先要使用 import 导入 os 模块。

代码展示

# 使用import导入os模块

import os

阿文把需要处理的文件下载下来,将文件保存到了路径: /Users/yequ/Downloads
如图所示:文件夹 Downloads 中有很多文件,例如:PDF、Word、Excel、图片、视频等等。
我们要获得 Downloads 文件夹中的文件名才能进行分类,接下来,学习获取文件夹所有文件名称的方法。

代码展示

阿文将文件保存到路径 /Users/yequ/Downloads,我们需要获取该文件夹下所有的文件列表。
先定义一个变量 downloadPath 并将文件夹路径以字符串的格式赋值给它。注意,变量名是区分大小写的。
使用Windows系统的同学在自己的电脑上运行代码时,需要注意路径前要加一个r表示字符串不需要转义
如:downloadPath = r"D:\yequ\Downloads"

# 使用import导入os模块

import os

# 将文件夹路径 /Users/yequ/Downloads 赋值给变量downloadPath

downloadPath = "/Users/yequ/Downloads"

# 使用print输出downloadPath以检查赋值结果

print(downloadPath)

 

获取文件名(代码展示与解释)

接下来,将路径作为参数传入 os.listdir() 函数,就可以获得一个列表。并输出列表,查看 Downloads 中的所有文件或文件夹的名称。

# 使用import导入os模块

import os

# 文件夹路径 /Users/yequ/Downloads 赋值给变量downloadPath

downloadPath = "/Users/yequ/Downloads"

# 使用os.listdir()函数获取该路径下所有的文件或文件夹名称

allItems = os.listdir(downloadPath)

# 使用print函数输出变量allItems以确认列表内容

print(allItems)

1.获取所有文件的名称,需要使用 os 调用 listdir()函数。
示例中, os.listdir() 就表示调用 listdir() 函数执行获取所有文件的操作。

2. os.listdir() 函数中要求传入参数文件夹路径
示例中,要查看图片文件夹中所有的文件,该文件夹的路径为: /Users/图片 ,就将该路径传入到 os.listdir() 函数中。

3

. 使用 os.listdir() 函数获取文件名后,返回一个列表,列表中的每个元素是图片文件夹中的文件。

代码结果

查看输出结果,使用 os.listdir() 函数,会获得所有文件组成的列表,列表的每项都是一个文件。

使用for循环遍历所有文件(夹),并在循环内使用print
输出文件(夹)名

  

得到了所有的文件(夹)名称后,我们需要取出每个文件用于判断类型。使用for循环遍历列表中所有文件(夹)的名称,并输出,以便稍后去逐个判断。

# 使用import导入os模块

import os

# 文件夹路径 /Users/yequ/Downloads 赋值给变量downloadPath

downloadPath = "/Users/yequ/Downloads"

# 使用os.listdir()函数获取该路径下所有的文件(夹),并赋值给变量allItems

allItems = os.listdir(downloadPath)

# 使用for循环遍历所有文件(夹)

for item in allItems:

    # 使用print输出文件(夹)名称

    print(item)

接下来,我们要按照文件后缀名对文件进行分类。

这一部分内容明天讲解,欢迎大家指出不足

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

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

相关文章

【Agent】Agent Q: Advanced Reasoning and Learning for Autonomous AI Agents

1、问题背景 传统的训练Agent方法是在静态数据集上进行监督预训练,这种方式对于要求Agent能够自主的在动态环境中可进行复杂决策的能力存在不足。例如,要求Agent在web导航等动态设置中执行复杂决策。 现有的方式是用高质量数据进行微调来增强Agent在动…

SpringBoot3.x+MyBatisPlus+druid多数据源配置

1 引言 本章主要介绍SpringBoot3.x多数据源配置,以及在此基础上配置分页拦截,自动填充功等功能,源码链接在文章最后。下面列出几个重要文件进行介绍。 2 项目结构 整体项目结构如下,主要介绍配置文件和配置类。 3 主要代码 …

Android Telephony总结

1、Telephony 业务介绍 Android telephony涉及较多模块 1.1、STK业务介绍 1.1.1、STK域选 1.1.2、是否支持STK Telephon STK-CSDN博客 1.1.3、STK应用的安装卸载 1.2、SS补充业务 1.3、通话业务 1.3.1、紧急号码 ECC 号码总结_ecc号码-CSDN博客 1.4、SMS 1.4.1 短信发送方式…

Datawhale X 李宏毅苹果书 AI夏令营-深度学习入门task3:实践方法论

在应用机器学习算法时,实践方法论能够帮助我们更好地训练模型。 1.模型偏差 模型偏差可能会影响模型训练。举个例子,假设模型过于简单,即使找到的最好的函数也不能满足需求。这种情况就是想要在大海里面捞针(一个损失低的函数&am…

数学建模强化宝典(9)遗传算法

前言 遗传算法(Genetic Algorithm, GA)是一种模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,它通过模拟自然进化过程来搜索最优解。遗传算法最早由美国的John Holland于20世纪70年代提出,并逐渐成为解决复…

Spring6学习笔记2:容器IoC

文章目录 3 容器:IoC3.1 IoC容器3.1.2 依赖注入3.1.3 IoC容器在Spring的实现 3.2 基于XML管理Bean3.2.1 搭建子模块spring6-ioc-xml3.2.2 实验一:获取bean①方式一:根据id获取②方式二:根据类型获取③方式三:根据id和类…

探索英文字体设计的奥秘,解读风格与实用技巧

英文字体设计是一门融合了艺术与技术的学科。字体不仅仅是文本的视觉表现,更是传递情感、信息和品牌个性的媒介。从印刷时代到数字时代,英文字体的设计和应用发生了巨大的变化,而现代字体设计师则肩负着为视觉传达赋予新生命的使命。本文将深…

记:子线程实现QTcpSocket读写的问题

最近在改进考勤系统客户端多线程实现时遇到了线程异步和野指针问题 client:多线程实现ui界面显示(主线程)、人脸检测(检测线程)、socket网络通信(通信线程)三个任务。 主线程: TimerEvent实时…

CTF---密码学知识点总结

✨Ascall编码:在 ctf 比赛中,flag 的标志一般是以 Ascall 码的形式存在,其对应的码值为102,108,97,103(其中{的码值是123)! ✨Unicode编码:又名万国码&#…

kubeadm方式升级k8s集群

一、注意事项 升级前最好备份所有组件及数据,例如etcd 不要跨两个大版本进行升级,可能会存在版本bug,如: 1.19.4–>1.20.4 可以 1.19.4–>1.21.4 不可以 跨多个版本的可以逐个版本进行升级。 二、查看当前版本 [rootk8s…

如何远程连接其他电脑?两种常用方法!

在过去,远程控制仅限于那些擅长计算机专业技术的少数人。然而,随着科学技术的不断发展,越来越多的人可以通过各种远程控制软件实现对其他电脑的远程操作。如今,对于普通电脑用户来说,使用自己的电脑远程控制另一台电脑…

22AP10 SS524 平替 海思HI3521DV200 可提供开发资料

22AP10 是针对多路高清/超高清(1080p/4M/5M/4K)DVR 产品应用开发的新一代专 业 SoC 芯片。22AP10 集成了 ARM Cortex-A7 四核处理器和性能强大的图像分析工具 推理引擎,支持多种智能算法应用。同时,22AP10 还集成了多路 MIPI …

通过EasyExcel设置自定义表头及设置特定单元格样式、颜色

前言 在项目开发中&#xff0c;我们会遇到各种文件导出的开发场景&#xff0c;但是这种情况并都不常用&#xff0c;于是本人将自己工作中所用的代码封装成工具类&#xff0c;旨在记录工具类使用方法和技术分享。 实战代码 导出效果&#xff1a; 1、导入依赖 <dependency&g…

钢铁百科:A633GrE钢板材质、A633GrE力学性能、A633GrE执行标准

A633GrE钢板是一种美标低合金高强度结构钢板&#xff0c;具有多种优异的性能和应用领域。以下是对其材质、执行标准、化学成分、力学性能、交货状态、应用范围、常用规格及总结的详细介绍&#xff1a; 一、A633GrE材质 A633GrE钢板属于美标低合金钢&#xff0c;具有高强度、高…

Leetcode 第 410 场周赛题解

Leetcode 第 410 场周赛题解 Leetcode 第 410 场周赛题解题目1&#xff1a;3248. 矩阵中的蛇思路代码复杂度分析 题目2&#xff1a;3249. 统计好节点的数目思路代码复杂度分析 题目3&#xff1a;3250. 单调数组对的数目 I思路代码复杂度分析 题目4&#xff1a;3251. 单调数组对…

nvm list available出现的 Could not retrieve https://nodejs.org/dist/index.json办法解决

好久没有用电脑的nvm list available 命令&#xff0c;今天晚上突然用发现趟趟趟~~ 报错 刚开始报错&#xff1a;是这样滴 Could not retrieve https://nodejs.org/dist/index.json.Get https://nodejs.org/dist/index.json: net/http: TLS handshake timeout方法尝试1&#…

COB超微小间距LED显示屏是什么,它的性价比怎么样,市场大有可为

COB&#xff08;Chip on Board&#xff09;技术最早发源于上世纪60年代&#xff0c;是将LED芯片直接封装在PCB电路板上&#xff0c;并用特种树脂做整体覆盖。COB实现“点” 光源到“面” 光源的转换。点间距有P0.3、P0.4、P0.5、P0.6、P0.7、P0.9、P1.25、P1.538、P1.5625、P1.…

【苍穹外卖】Day4 套餐接口

1 数据设计 /*** 套餐*/ Data Builder NoArgsConstructor AllArgsConstructor public class Setmeal implements Serializable {private static final long serialVersionUID 1L;private Long id;//分类idprivate Long categoryId;//套餐名称private String name;//套餐价格p…

Renesa Version Board开发RT-Thread 之Client(WIFI)和上位机的数据传输

目录 概述 1 系统框架 1.1 模块介绍 1.1 Version-Board 开发板 1.1.1 Vision-Board简介 1.1.2 Vision-Board的资源 1.2 框架介绍 2 上位机App 2.1 UI设计 2.2 代码实现 3 功能测试 3.1 网络连接 3.2 功能测试 概述 本文主要Renesa Version Board开发RT-Thread 之…

与MySQL邂逅

MySQL安装捏~ 其实每次新学一样东西&#xff0c;安装永远是一个小坎 但是小问题啦 安装MySQL要用root账户&#xff0c;安装后普通用户也可以用捏 要安装MySQL先来看第一步&#xff01; 改bug&#xff01; Centos 卸载不要的环境 先康康有木有捏&#xff1a; mariadb就是…