目标
- 返回指定路径下所有的文件和文件夹列表
- 返回子文件夹中所有指定文件格式的文件
os.listdir()
参考学习
os.listdir(path)
# _*_coding:utf-8
import os def get_file(root_path,suffix): for dir_name in os.listdir(root_path):exts = suffix.split(' ')#获取目录或文件的路径file_path = os.path.join(root_path,dir_name)#判断路径为文件还是路径if os.path.isdir(file_path):#递归获取所有文件和目录的路径file.write(file_path + '\n')# print(file_path)get_file(file_path,suffix) else:for ext in exts: #根据后缀名判断文件类别if(dir_name.endswith(ext)): # print(dir_name)file.write(dir_name + '\n') breakif __name__ == "__main__":root_path = r'D:\0数据任务'suffix = '.jpg .jpeg'outfile = r"C:\Users\Desktop\list_dir.txt"file = open(outfile,'w')get_file(root_path,suffix)file.close()
os.walk()
参考学习1
参考学习2
walk()函数返回目录树生成器(迭代器)。通过自顶向下遍历目录来生成目录树中的文件名。对于根目录顶部(包括顶部本身)树中的每个目录,它产生一个3元组(dirpath,dirnames,filenames)。
- dirpath (str)是当前正在遍历的这个文件夹的本身的地址。
- dirnames (list)是该文件夹中所有的目录的名字(不包括子目录)。
- filenames (list)是该文件夹中所有的文件(不包括子目录)。
但列表中的名称不包含路径,要得到一个完整路径(从顶部开始)到dirpath中的文件或目录,请执行os.path.join(dirpath,name)。更多详情可查看 python 标准库文档(os.walk) 。
os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]])
# _*_coding:utf-8
import osdef get_file(root_path,suffix):exts = suffix.split(" ")for root, dirs, files in os.walk(root_path):for name in files:for ext in exts:if(name.endswith(ext)):file.write(name + "\n")breakif __name__ == "__main__":root_path = r'D:\0数据任务'suffix = '.jpg .jpeg'outfile = r"C:\Users\Desktop\list_dir.txt"file = open(outfile,'w')get_file(root_path,suffix)file.close()