栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python递归遍历文件夹搜索文件 脚本

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python递归遍历文件夹搜索文件 脚本

开发背景:

  电脑的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文件路径列表

 

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

学无止境


这个小脚本,花费了我三个小时,除了关键字外,所有的api都是我一次一次百度所得,包括那个换行符,没办法,python写的少,但我相信,


虽然我走的慢,但每一步都是在前进,并且永不止步


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/219637.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号