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)

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值