目录
一、实现要求
二、代码实现
三、效果测试
一、实现要求
1、在电脑上有一个文件夹,该文件夹下面还有子文件夹,具体层级不清楚,需要实现将该文件夹下所有的文件路径读取出来;
2、在1的基础上,只需读取指定类型的文件。
二、代码实现
1、引入自带的文件读取库os
import os
2、定义findAllFilePath方法,传入要查找的文件夹目录
3、使用os.walk方法,深入文件夹层级进行读取
4、使用os.path.join方法拼接读取到的文件名和文件路径
5、返回读取到的书所有文件路径
代码如下:
def findAllFilePath(rootPath):
'''
查找某个文件夹下的所有文件路径,不论有多少层级的子文件夹
#rootPath为根文件夹路径
'''
all_files_path = []
for root, dirs, files in os.walk(rootPath):
if files:
for file in files:
path = os.path.join(root, file)
all_files_path.append(path)
return all_files_path
6、在以上的基础上实现,值查找指定类型的文件。增加一个文件类型的参数,在读取到文件时,判断一下后缀名称是什么,如果文件名称的后缀等于我们传入的这个文件类型就要,否则丢弃。
代码如下:
def findAllFilePathByType(rootPath,fileType):
'''
查找某个文件夹下的所有文件类型为fileType类型的文件路径,不论有多少层级的子文件夹
#rootPath为根文件夹路径
'''
all_files_path = []
for root, dirs, files in os.walk(rootPath):
if files:
for file in files:
if file.endswith(fileType):
path = os.path.join(root, file)
all_files_path.append(path)
return all_files_path
三、效果测试
在电脑上选择一个文件夹,复制路径E:\datadirs,调用方法。执行。
path=r'E:\datadirs'
files = findAllFilePath(path)
print(files)
files = findAllFilePathByType(path,'txt')
print(files)
输出结果: