广告
返回顶部
首页 > 资讯 > 后端开发 > Python >使用Python遍历文件夹实现查找指定文件夹
  • 560
分享到

使用Python遍历文件夹实现查找指定文件夹

2024-04-02 19:04:59 560人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录1. 文件夹结构2. 查找指定文件夹下指定文件3. 查找指定文件夹下所有相同名称的文件4. 查找指定文件夹下所有相同后缀名的文件1. 文件夹结构 指定文件夹:E:/Code/py

1. 文件夹结构

指定文件夹:E:/Code/python/test

指定文件:test.txt

指定文件夹下的目录及文件:

文件夹a:

a.txt

test.txt

文件夹txt:

test.txt

文件b.txt

test.py

test.txt

2. 查找指定文件夹下指定文件

import os

# 查找该层文件夹下指定文件
def search_file(dirPath, fileName):
    dirs = os.listdir(dirPath) # 查找该层文件夹下所有的文件及文件夹,返回列表
    for currentFile in dirs: # 遍历列表
        absPath = dirPath + '/' + currentFile # 文件的绝对路径
        if currentFile == fileName:
             print(absPath) 
           
if __name__ == "__main__":
    dirPath = 'E:/Code/Python/test'
    fileName = 'test.txt'
    search_file(dirPath, fileName)
              

执行结果:

E:/Code/Python/test/test.txt

3. 查找指定文件夹下所有相同名称的文件

import os

# 查找指定文件夹下所有相同名称的文件
def search_file(dirPath, fileName):
    dirs = os.listdir(dirPath) # 查找该层文件夹下所有的文件及文件夹,返回列表
    for currentFile in dirs: # 遍历列表
        absPath = dirPath + '/' + currentFile 
        if os.path.isdir(absPath): # 如果是目录则递归,继续查找该目录下的文件
            search_file(absPath, fileName)
        elif currentFile == fileName:
            print(absPath) # 文件存在,则打印该文件的绝对路径

if __name__ == "__main__":
    dirPath = 'E:/Code/Python/test'
    fileName = 'test.txt'
    search_file(dirPath, fileName)

执行结果:

E:/Code/Python/test/a/test.txt
E:/Code/Python/test/test.txt    
E:/Code/Python/test/txt/test.txt

4. 查找指定文件夹下所有相同后缀名的文件

import os

# 查找指定文件夹下所有相同后缀名的文件
def search_file_suffix(dirPath, suffix):
    dirs = os.listdir(dirPath)
    for currentFile in dirs:
        absPath = dirPath + '/' + currentFile
        if os.path.isdir(absPath):
            search_file_suffix(absPath, suffix)
        elif currentFile.split('.')[-1] == suffix: # 文件后缀名相同,则打印该文件的绝对路径
            print(absPath)

if __name__ == "__main__":
    dirPath = 'E:/Code/Python/test'
    suffix = 'txt'
    search_file_suffix(dirPath, suffix)
      

执行结果:

E:/Code/Python/test/a/a.txt
E:/Code/Python/test/a/test.txt  
E:/Code/Python/test/b.txt       
E:/Code/Python/test/test.txt    
E:/Code/Python/test/txt/test.txt

以下是需要注意的避坑点:

1.注意避坑 - 递归函数的位置:查找相同后缀名的文件时,递归调用必须放在if里,而不能放在elif里,否则当文件夹名称与文件后缀名相同时,会出错。

如:查找txt后缀的文件,刚好又有一个txt的文件夹,因为递归放在了elif里,那么遍历会停在txt文件夹,而不去遍历txt文件夹里的内容。

import os

# 查找指定文件夹下所有相同后缀名的文件
def search_file_suffix(dirPath, suffix):
    dirs = os.listdir(dirPath)
    for currentFile in dirs:
        absPath = dirPath + '/' + currentFile
        if os.path.isdir(absPath):
            search_file_suffix(absPath, suffix)
        elif currentFile.split('.')[-1] == suffix: # 文件后缀名相同,则打印该文件的绝对路径
            print(absPath)

def search_file_suffix_temp(dirPath, suffix):
    dirs = os.listdir(dirPath)
    for currentFile in dirs:
        absPath = dirPath + '/' + currentFile
        if currentFile.split('.')[-1] == suffix: 
            print(absPath)
        elif os.path.isdir(absPath): # 递归判断放在elif里
            search_file_suffix_temp(absPath, suffix)

if __name__ == "__main__":
    dirPath = 'E:/Code/Python/test'
    suffix = 'txt'
    search_file_suffix(dirPath, suffix)
    print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
    search_file_suffix_temp(dirPath, suffix)

执行结果:

E:/Code/Python/test/a/a.txt
E:/Code/Python/test/a/test.txt  
E:/Code/Python/test/b.txt       
E:/Code/Python/test/test.txt    
E:/Code/Python/test/txt/test.txt
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
E:/Code/Python/test/a/a.txt     
E:/Code/Python/test/a/test.txt  
E:/Code/Python/test/b.txt       
E:/Code/Python/test/test.txt
E:/Code/Python/test/txt

2.注意避坑 - .vscode文件夹:在使用vscode打开文件夹时,会自动生成.vscode文件夹,如果查找文件的时候不想查找这些配置文件夹里的文件,那么需要在判断文件夹后,再加一层判断,遇到.vscode或者其他配置文件夹就跳过。

import os
from fnmatch import fnmatchcase

# 查找指定文件夹下所有相同后缀名的文件
def search_file_suffix(dirPath, suffix):
    dirs = os.listdir(dirPath)
    for currentFile in dirs:
        absPath = dirPath + '/' + currentFile
        if os.path.isdir(absPath):
            search_file_suffix(absPath, suffix)
        elif currentFile.split('.')[-1] == suffix: # 文件后缀名相同,则打印该文件的绝对路径
            print(absPath)

def search_file_suffix_temp(dirPath, suffix):
    dirs = os.listdir(dirPath)
    for currentFile in dirs:
        absPath = dirPath + '/' + currentFile
        if os.path.isdir(absPath):
            if fnmatchcase(currentFile,'.*'): # 如果文件夹是.vscode或者其他.开头的文件夹,就跳过
                pass
            else:
                search_file_suffix(absPath, suffix)
        elif currentFile.split('.')[-1] == suffix: 
            print(absPath)

if __name__ == "__main__":
    dirPath = 'E:/Code/python/test'
    suffix = 'JSON'
    search_file_suffix(dirPath, suffix)
    print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
    search_file_suffix_temp(dirPath, suffix)    

执行结果:

E:/Code/python/test/.vscode/settings.json
E:/Code/python/test/a.json
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
E:/Code/python/test/a.json

到此这篇关于使用Python遍历文件夹实现查找指定文件夹的文章就介绍到这了,更多相关Python查找指定文件夹内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 使用Python遍历文件夹实现查找指定文件夹

本文链接: https://www.lsjlt.com/news/119670.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用Python遍历文件夹实现查找指定文件夹
    目录1. 文件夹结构2. 查找指定文件夹下指定文件3. 查找指定文件夹下所有相同名称的文件4. 查找指定文件夹下所有相同后缀名的文件1. 文件夹结构 指定文件夹:E:/Code/Py...
    99+
    2022-11-11
  • python遍历查找文件夹中符合要求的文件
    在python中使用遍历查找出文件夹中符合要求的文件,具体方法如下:import osimport stringinputFilePath= "G:\\aaa\\shixun_data"threefile = [ ]key = "ND"fo...
    99+
    2022-10-21
  • c++下使用windows api遍历指定文件夹及其子文件夹中的文件
    以下代码在vs2008中测试通过,利用FindFirstFile,FindNextFile函数遍历了我电脑上全路径为“C:\\Users\\v_tianboli\\Desktop\\...
    99+
    2022-11-12
  • Python实现遍历读取文件或文件夹
    目录例子os.listdiros.walk遍历读取代码搞机器学习或者深度学习算法很多时候需要遍历某个目录读取文件,特别是经常需要读取某个特定后缀的文件,比如图片的话可能需要读取jpg...
    99+
    2022-11-11
  • c++下怎么使用windows api遍历指定文件夹及其子文件夹中的文件
    这篇文章主要介绍“c++下怎么使用windows api遍历指定文件夹及其子文件夹中的文件”,在日常操作中,相信很多人在c++下怎么使用windows api遍历指定文件夹及其子文件夹中的文件问题上存在疑惑,小编查阅了各式资料,整理出简单好...
    99+
    2023-06-20
  • linux 下用python 遍历文件夹
          我们需要遍历一个文件夹下面的所有 文件名,下面介绍下在Python中使用os.walk(路径)可以遍历某路径下的所有文件夹及文件。    具体方法是for <路径名变量>, <文件夹名列表>, <文...
    99+
    2023-01-31
    遍历 文件夹 linux
  • Python实现遍历包含大量文件的文件夹
    在处理大模型的训练数据时,经常需要遍历大型文件夹,其中,可能包括数千万或数亿个文件,这时,一般的Python遍历函数就会非常慢,例如os.walk、glob、path.rglob等等...
    99+
    2023-05-15
    Python实现遍历文件夹 Python遍历文件夹 Python 文件夹
  • Python实现递归遍历文件夹并删除文件
    思路: 遍历文件夹下面的文件夹 如果文件夹名称等于".svn",则修改文件夹的属性(因为".svn"的文件都是只读的,你不能直接删除) 删除此文件夹 如果文件夹名称不等于".svn",则递归上面的方法 Py...
    99+
    2022-06-04
    递归 遍历 文件夹
  • golang遍历文件夹怎么实现
    在Go语言中,可以使用filepath.Walk函数来遍历文件夹。filepath.Walk函数会递归地遍历指定的文件夹及其子文件夹...
    99+
    2023-10-20
    golang
  • Python遍历文件夹和读写文件的实现代码
    需 求 分 析 1、读取指定目录下的所有文件 2、读取指定文件,输出文件内容 3、创建一个文件并保存到指定目录 实 现 过 程   Python写代码简洁高效,实现以上功能仅用了40行左右的代码~ 昨天用...
    99+
    2022-06-04
    遍历 文件夹 代码
  • Python遍历文件夹和读写文件的实现方法
    需 求 分 析 1、读取指定目录下的所有文件 2、读取指定文件,输出文件内容 3、创建一个文件并保存到指定目录 实 现 过 程 Python写代码简洁高效,实现以上功能仅用了40行左右的代码~ 昨天用Ja...
    99+
    2022-06-04
    遍历 文件夹 文件
  • Python怎么实现递归遍历文件夹搜索文件
    本篇内容主要讲解“Python怎么实现递归遍历文件夹搜索文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么实现递归遍历文件夹搜索文件”吧!开发背景:电脑的E盘里有很多电子书,以前...
    99+
    2023-06-02
  • 使用php怎么遍历文件夹
    使用php怎么遍历文件夹?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支持多种主流与非主流的数据库...
    99+
    2023-06-14
  • Node.js 使用递归实现遍历文件夹中所有文件
    如标题所示,遍历文件夹下的所有文件,主要功能如下: 传入一个路径,读取路径里面所有的文件 遍历读取的文件,判断当前文件是文件还是文件夹 当前目录为文件,打印出当前文件绝对路径 当前目录为文件夹,获取文件夹路...
    99+
    2022-06-04
    递归 文件 遍历
  • Python怎么实现遍历包含大量文件的文件夹
    本篇内容主要讲解“Python怎么实现遍历包含大量文件的文件夹”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么实现遍历包含大量文件的文件夹”吧!在处理大模型的训练数据时,经常需要遍...
    99+
    2023-07-06
  • nodejs实现遍历文件夹并统计文件大小
    离开公司已经有2个多个月,之前写了不少工具,但在离开公司的当天,我亲手把一年来的所有积累工具和代码都格式化了。今天想起之前在项目中遇到的一个问题,今天将其记录下来。 我在优化内存的时候,遇到一些图片在加载...
    99+
    2022-06-04
    文件大小 遍历 文件夹
  • 【Java入门】使用Java实现文件夹的遍历
    遍历文件夹我们通常是使用递归进行操作,这种方式比较简单,也比较容易理解。本文为大家介绍另一种不使用递归的方式,由于没有使用递归,只用到了循环和集合,所以效率更高一些! 一、使用递归遍历文件夹 整体思路 1、使用File封装初始目录...
    99+
    2023-09-14
    算法 数据结构 Powered by 金山文档
  • 如何使用Node.js遍历文件夹详解
    目录前言获取的文件列表为数组格式获取的文件列表为对象格式异步方式比较同步和异步两种方案附node遍历文件夹并读取文件内容参考资料总结前言 最近在写一个管理 markdown 文件的工...
    99+
    2022-11-13
  • Python 遍历子文件和所有子文件夹的代码实例
    最近看ECShop到网上找资料,发现好多说明ECShop的文件结构不全面,于是想自己弄个出来。但这是个无聊耗时的工作,自己就写了个Python脚本,可以递归遍历目录下的所有文件和所有子目录,并将结果记录到一...
    99+
    2022-06-04
    遍历 文件夹 实例
  • R语言如何使用list.files遍历文件夹中的文件
    这篇文章主要为大家展示了“R语言如何使用list.files遍历文件夹中的文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“R语言如何使用list.files遍...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作