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

举报
拿我格子衫来 发表于 2022/03/18 00:17:34 2022/03/18
【摘要】 开发背景:   电脑的E盘里有很多电子书,以前对那个技术比较感兴趣就去下载很多电子书,有些看了,有些没看,电子书没有在一个地方,于是我准备写一个脚本,将这些电子书搜索出来,进行整理一下。   程序设计的思路:   定义一个搜索的根目录baseDir,一个不搜索的文件夹列表notSearhFolder...

开发背景:

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

 

程序设计的思路:

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

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

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

  遍历,判断子元素是文件,并且文件类型存在于searchTypeArr,如果真则存在返回路径

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

 

代码:


  
  1. # 根据配置好的文件,搜索文件夹
  2. import os
  3. import io
  4. import sys
  5. sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') # 处理vscode打印中文乱码问题
  6. # 主函数
  7. baseDir = "E:\\Pang\\for_search" # 搜索的根目录
  8. notSearchFolderArr = ['node_modules'] # 不搜索的目录
  9. searchFileTypeArr = ['.pdf','.PDF'] # 搜索的文件类型
  10. def searhMain():
  11. allResArr = searchFolder(baseDir)
  12. print('\n'.join(allResArr))
  13. # 搜索一个文件目录 传入一个文件目录路径
  14. def searchFolder(folderPath):
  15. folderName = os.path.split(folderPath)[-1]
  16. searFilePathArr = []
  17. if os.path.exists(folderPath) and (folderName not in notSearchFolderArr): # 判断路径是有效文件夹
  18. fileArr = os.listdir(folderPath) # 获取文件夹下的所有内容(文件和文件夹)
  19. for item in fileArr:
  20. currentPath = folderPath+'\\'+item
  21. (fileName,fileType) = os.path.splitext(item)
  22. if os.path.isfile(currentPath) and (fileType in searchFileTypeArr): # 处理文件
  23. searFilePathArr.append(currentPath)
  24. if os.path.isdir(currentPath) and (item not in notSearchFolderArr): # 处理文件夹
  25. innerFileArr = searchFolder(currentPath) # 递归搜索
  26. searFilePathArr.extend(innerFileArr)
  27. return searFilePathArr
  28. searhMain()

 

主要用到的模块和api:

模块 os: 操作文件的模块

主要api:

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

运行结果:

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

 

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

学无止境

 

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

 

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

 

文章来源: fizzz.blog.csdn.net,作者:拿我格子衫来,版权归原作者所有,如需转载,请联系作者。

原文链接:fizzz.blog.csdn.net/article/details/102619223

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。