Python怎么实现递归遍历文件夹搜索文件

本篇内容主要讲解“Python怎么实现递归遍历文件夹搜索文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么实现递归遍历文件夹搜索文件”吧!

创新互联是一家专注于网站制作、网站设计与策划设计,栖霞网站建设哪家好?创新互联做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:栖霞等地区。栖霞做网站价格咨询:18982081108

开发背景:

电脑的E盘里有很多电子书,以前对个技术比较感兴趣就去下载很多电子书,有些看了,有些没看,这些电子书没有在一个地方,于是我准备写一个脚本,将这个电子书书搜索出来,进行整理一下。

程序设计的思路:

定义一个搜索的根目录baseDir,一个不搜索的文件夹列表notSearhFolderArr,一个搜索的文件类型列表searchTypeArr,

判断根目录baseDir是有效的,并且不存在于notSearhFolderArr数组中,

获取文件夹下的所有文件及文件夹,

遍历,判断子元素是文件就,判断文件类型是否存在于searchTypeArr,如果存在返回路径

判断子元素,是文件夹并且不属于notSearhFolderArr数组中, 执行第一步,进行递归搜索

代码:

 # 根据配置好的文件,搜索文件夹import osimport ioimport sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')# 主函数baseDir = "E:\\Pang\\for_search" # 搜索的根目录notSearchFolderArr = ['node_modules'] # 不搜索的目录searchFileTypeArr = ['.pdf','.PDF'] # 搜索的文件类型def searhMain():
 allResArr = searchFolder(baseDir)
 print('\n'.join(allResArr))# 搜索一个文件目录 传入一个文件目录路径def searchFolder(folderPath):
 folderName = os.path.split(folderPath)[-1]
 searFilePathArr = [] if os.path.exists(folderPath) and (folderName not in notSearchFolderArr):
 fileArr = os.listdir(folderPath) for item in fileArr:
 currentPath = folderPath+'\\'+item
 (fileName,fileType) = os.path.splitext(item) if os.path.isfile(currentPath) and (fileType in searchFileTypeArr):
 searFilePathArr.append(currentPath) if os.path.isdir(currentPath) and (item not in notSearchFolderArr):
 innerFileArr = searchFolder(currentPath)
 searFilePathArr.extend(innerFileArr) return searFilePathArr
searhMain()

主要用到的模块和api:

模块 os: 操作文件的模块

主要api:

os.path.split : 分割路径
os.path.exists: 路径是否存在
os.listdir: 路径是否是文件夹
os.path.splitext:拆分路径中的文件扩展名于其他
os.path.isfile: 路径是否是文件
append: 向数组中追加一个元素
extend: 向数组追加一个数组

运行结果:

程序返回的事根目录下所有的pdf文件路径列表

Python怎么实现递归遍历文件夹搜索文件

这个脚本稍作修改就可以查询多个文件类型,对文件进行分类,获取要查询的文件路径后,还可以对文件,进行批量备份到一个文件夹下,或者将搜索结果直接打包压缩。现在怎么玩都可以。

到此,相信大家对“Python怎么实现递归遍历文件夹搜索文件”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

网站标题:Python怎么实现递归遍历文件夹搜索文件
分享URL:https://www.cdcxhl.com/article0/igpoio.html

成都网站建设公司_创新互联,为您提供外贸网站建设搜索引擎优化网站设计公司定制开发品牌网站制作网站收录

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站建设