Python遍历每个文件夹【包含子目录】可筛选类型

这篇博客详细介绍了如何使用Python的os.walk遍历目录及其子目录中的文件,解释了各变量含义,并通过代码示例展示了如何筛选具有特定后缀的文件。通过完整代码1.0、2.0和3.0的逐步解析,读者可以理解如何获取路径、目录、文件名以及如何将筛选后的文件路径存储到列表中。
摘要由CSDN通过智能技术生成

哈喽我又㕛叒叕回来了!

--------------------------------------我是不重要分割线-------------------------------------------------------------------

----------------要直接看代码可以点击此处

超链接·目录

起始

完整代码1.0

完整代码2.0

完整代码3.0


起始

#coding=utf-8

Python2的人请自觉↑ 

只要用到-遍历-就要使用os模块

import os

关于import 的用法有很多,下次讲!

一般来说,我们用os.walk来进行——

完整代码1.0

for rt,dirs,fl in os.walk(r"path:路径",topdown=True):
    for nm in fl:
        print("文件:",str(rt)+"\\"+str(nm))
    for _dir in dirs:
        print("目录:",str(rt)+"\\"+str(_dir))

超链接·目录

起始

完整代码1.0

完整代码2.0

完整代码3.0


是不是很懵? 没有关系,我们一个个地讲。

-变量rt:[route]路径

文件所在路径[不包含文件名]

-变量dirs:[dir]目录下所有直接子文件夹

例:

dir_1

   |-  dir_2

   |        |- dir_3

   |-dir_2_1

当遍历到dir_1目录下时,dirs为:['dir_2','dir_2_1']

当遍历到dir_1下的dir_2目录时,dirs为['dir_3']

当遍历到dir_1下的dir_2下的dir_3目录时,dirs为[](没有子文件夹了)

-变量fl:[files]目录下所有直接文件名,同dirs,只不过将目录名变成了文件名,是很多个nm的集合列表

-变量nm:【name】文件名(带后缀)

-变量_dir:[dir]具体的每一个目录名

---------------------------------------------------------------------------------------------------------------------------------

好的接下来我们推出:

完整代码2.0


for rt, dirs, fl in os.walk(r"path:路径", topdown=True):
    for nm in fl:
        if (nm.lower().endswith(".文件后缀1") or
            nm.lower().endswith(".文件后缀2") or
            nm.lower().endswith(".文件后缀3")):
            print(str(rt) + "\\" + str(nm))
###例子:
for rt, dirs, fl in os.walk(r".\ExcelFiles", topdown=True):
    for nm in fl:
        if (nm.lower().endswith(".xlsx") or
            nm.lower().endswith(".xlsm") or
            nm.lower().endswith(".xls")):
            print(str(rt) + "\\" + str(nm))

超链接·目录

起始

完整代码1.0

完整代码2.0

完整代码3.0


每个变量的意思请见前文

效果:可以将所有指定后缀的文件筛选出来

如:目录

dir1

  |-file.txt

  |-file.bat

  |-dir2

  |   |-file2.txt

  |   |-dir3

  |   |   |-file3.txt

运行代码:

for rt, dirs, fl in os.walk(r"dir", topdown=True):
    for nm in fl:
        if (nm.lower().endswith(".txt")):
            print(str(rt) + "\\" + str(nm))

 出现的效果:

dir1\\file.txt
dir1\\dir2\\file2.txt
dir1\\dir2\\dir3\\file3.txt

明白了吗?判断文件名是否以指定后缀结尾(函数的具体用法看之前的<Python数据类型[1]>里的字符串),然后输出

-------------------------------------------------------------------------------------------------------------------------------

完整代码3.0

lists=[]
for rt, dirs, fl in os.walk(r"path:路径", topdown=True):
    for nm in fl:
        if (nm.lower().endswith(".文件后缀1") or
            nm.lower().endswith(".文件后缀2") or
            nm.lower().endswith(".文件后缀3")):
            print(str(rt) + "\\" + str(nm))
            lists.append(str(rt) + "\\" + str(nm))
###例子:
lists=[]
for rt, dirs, fl in os.walk(r".\ExcelFiles", topdown=True):
    for nm in fl:
        if (nm.lower().endswith(".xlsx") or
            nm.lower().endswith(".xlsm") or
            nm.lower().endswith(".xls")):
            print(str(rt) + "\\" + str(nm))
            lists.append(str(rt) + "\\" + str(nm))

超链接·目录

起始

完整代码1.0

完整代码2.0

完整代码3.0


没啥可说的,就是多了一个列表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unconquerable p

给点吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值