python中遍历一个文件夹
- 相关函数os.walk()介绍
原型为:os.walk(top, topdown=True, οnerrοr=None, followlinks=False)
我们一般只使用第一个参数。(topdown指明遍历的顺序)
该方法对于每个目录返回一个三元组,(dirpath, dirnames, filenames)。第一个是路径,第二个是路径下面的目录,第三个是路径下面的非目录(对于windows来说也就是文件)- 示例
如下示例可以将所有目录下的文件名称罗列出来,放在filenames中,将所有目录下的的目录罗列出来,例如该目录下有一个文件夹test1,test1中有一个文件夹test2,所以,会罗列出”D:\data\test1”,”D:\data\test1\test2”… 代码如下:
import os
import os.path
rootdir = “d:\data”# 指明被遍历的文件夹
for parent,dirnames,filenames in os.walk(rootdir):
#三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字
for dirname in dirnames:#输出文件夹信息
print("parent is:" + parent)
print("dirname is" + dirname)
for filename in filenames:#输出文件信息
print("parent is": + parent)
print("filename is:" + filename)
#输出文件路径信息
print("full name:" +os.path.join(parent,filename)
- 利用该特点找出该文件夹下所有特定后缀名的文件
#定义一个函数,寻找固定目录下的所有后缀名为某格式的文件
def findFile(dir,postFix):
fileList = []
for parent,dirnames,filenames in os.walk(dir):
#将每个文件添加到fileList中
for filename in filenames:
if filename.endswith(postFix):#是否为特定后缀名的文件
fileList.append(os.path.join(parent,filename))
return fileList;