哈喽我又㕛叒叕回来了!
————————————–我是不重要分割线——————————————————————-
—————-要直接看代码可以点击此处
超链接·目录
起始
#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))
超链接·目录
是不是很懵? 没有关系,我们一个个地讲。
-变量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))
超链接·目录
每个变量的意思请见前文
效果:可以将所有指定后缀的文件筛选出来
如:目录
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))
超链接·目录
没啥可说的,就是多了一个列表