`

Python遍历文件夹的两种方法比较

 
阅读更多

遍历文件夹是一个很常用的功能吧。这里分别用两种方法实现: 

    第一种:使用os.walk:

  1. # -*- coding: utf-8 -*- 
  2. import os 
  3. def Test1(rootDir): 
  4.     list_dirs = os.walk(rootDir) 
  5.     for root, dirs, files in list_dirs: 
  6.         for d in dirs: 
  7.             print os.path.join(root, d)      
  8.         for f in files: 
  9.             print os.path.join(root, f) 

    第二种:使用os.listdir:

  1. # -*- coding: utf-8 -*- 
  2. import os 
  3. def Test2(rootDir): 
  4.     for lists in os.listdir(rootDir): 
  5.         path = os.path.join(rootDir, lists) 
  6.         print path 
  7.         if os.path.isdir(path): 
  8.             Test2(path) 

这两种到底有什么区别呢?

这里先建立一个测试目录E:\test,目录结构如下:

  1. E:\TEST 
  2. │--A 
  3. │  │--A-A 
  4. │  │  │--A-A-A.txt 
  5. │  │--A-B.txt 
  6. │  │--A-C 
  7. │  │  │--A-B-A.txt 
  8. │  │--A-D.txt 
  9. │--B.txt 
  10. │--C 
  11. │  │--C-A.txt 
  12. │  │--C-B.txt 
  13. │--D.txt 
  14. │--E 

下面通过运行如下代码:

  1. Test1('E:\TEST'
  2. print '=======================================' 
  3. Test2('E:\TEST'

输出结果为:

  1. >>>  
  2. E:\TEST\A 
  3. E:\TEST\C 
  4. E:\TEST\E 
  5. E:\TEST\B.txt 
  6. E:\TEST\D.txt 
  7. E:\TEST\A\A-A 
  8. E:\TEST\A\A-C 
  9. E:\TEST\A\A-B.txt 
  10. E:\TEST\A\A-D.txt 
  11. E:\TEST\A\A-A\A-A-A.txt 
  12. E:\TEST\A\A-C\A-B-A.txt 
  13. E:\TEST\C\C-A.txt 
  14. E:\TEST\C\C-B.txt 
  15. ======================================= 
  16. E:\TEST\A 
  17. E:\TEST\A\A-A 
  18. E:\TEST\A\A-A\A-A-A.txt 
  19. E:\TEST\A\A-B.txt 
  20. E:\TEST\A\A-C 
  21. E:\TEST\A\A-C\A-B-A.txt 
  22. E:\TEST\A\A-D.txt 
  23. E:\TEST\B.txt 
  24. E:\TEST\C 
  25. E:\TEST\C\C-A.txt 
  26. E:\TEST\C\C-B.txt 
  27. E:\TEST\D.txt 
  28. E:\TEST\E 
  29. >>>  

可以看出,对于第一种方法,输出总是先文件夹后文件名的,对于第二种,则是按照目录树结构以及按照首字母排序进行输出的。

另外之前打印出的目录树其实就是通过对第二种方法进行稍微修改实现的,如下:

  1. def Test3(rootDir, level=1): 
  2.     if level==1print rootDir 
  3.     for lists in os.listdir(rootDir): 
  4.         path = os.path.join(rootDir, lists) 
  5.         print '│  '*(level-1)+'│--'+lists 
  6.         if os.path.isdir(path): 
  7.             Test3(path, level+1
分享到:
评论

相关推荐

    自动遍历文件夹生成成目录树.rar

    这两种方法都能够在不丢失任何文件的情况下遍历整个目录结构。 二、目录树的概念 目录树是计算机科学中对文件系统的一种抽象表示,它模拟了真实文件系统中目录和文件的关系。在目录树中,根目录位于顶部,其下可以...

    如何遍历文件夹查找文件

    3. **遍历算法**:基本的遍历算法有两种,一种是深度优先搜索(DFS),另一种是广度优先搜索(BFS)。DFS先访问子目录,再访问当前目录的文件,而BFS则先访问所有当前目录的文件,再访问子目录。`os.walk()`在Python...

    python实现遍历文件夹修改文件后缀

    Python作为一种强大的脚本语言,提供了丰富的库和模块来处理文件系统操作,其中os和sys模块便可以非常方便地实现遍历文件夹以及修改文件后缀的功能。 在上述内容中,我们看到了一个使用Python实现遍历文件夹修改...

    Python遍历文件夹 处理json文件的方法

    有两种做法:os.walk()、pathlib库,个人感觉pathlib库的path.glob用来匹配文件比较简单。 下面是第二种做法的实例(第一种做法百度有很多文章): from pathlib import Path import json analysis_root_dir = D:\\...

    Python遍历某目录下的所有文件夹与文件路径

    在这两种方法中,我们还用到了一些常用的文件操作函数和方法: - os.sep用于返回当前操作系统的路径分隔符,可能是“/”或“\”。 - os.path.join用于将路径的各个部分连接成一个完整的路径字符串。 - os.path.isdir...

    Python遍历指定文件及文件夹的方法

    ### Python遍历指定文件及文件夹的方法 在Python编程中,遍历文件及文件夹是一项常见且实用的操作,尤其在处理大量文件时更是如此。本文将深入探讨如何使用Python来遍历指定目录下的所有文件及子目录,并通过两种...

    遍历指定文件夹下所有文件

    在遍历过程中,我们需要注意处理两种特殊的情况:`.`和`..`,它们分别代表当前目录和父目录,通常不包含实际的文件数据,可以根据需求选择是否跳过。 在C++中,可以这样实现遍历: ```cpp #include #include ...

    遍历文件夹并建成目录树

    在IT领域,遍历文件夹并建立目录树是一项常见的任务,尤其在文件管理、数据迁移、备份策略或者软件开发中。这项任务涉及到操作系统层面的文件系统接口和递归算法的应用。下面将详细解释这个过程以及如何实现从只能...

    Python获取指定文件夹下的文件名的方法

    本文采用os.walk()和os.listdir()两种方法,获取指定文件夹下的文件名。 一、os.walk() 模块os中的walk()函数可以遍历文件夹下所有的文件。 os.walk(top, topdown=Ture, onerror=None, followlinks=False) 该函数...

    遍历本地磁盘所有文件夹

    - 常用的遍历方法有两种:深度优先搜索(DFS)和广度优先搜索(BFS)。在这个实例中,我们通常使用DFS,因为它更适合处理文件系统的层次结构。 - DFS可以递归地访问每个文件夹中的子文件夹,直到遍历完所有层级。 ...

    Python与C++ 遍历文件夹下的所有图片实现代码

    Python和C++作为两种广泛使用的编程语言,在这一领域均有应用。本文将详细介绍如何使用Python和C++遍历文件夹中的所有图片,并且提供相应的实现代码供参考。 首先是Python语言的遍历方法。Python中有一个名为glob的...

    遍历一个文件夹并生成所有文件的MD5

    在IT领域,尤其是在数据安全和文件...总之,通过Python编程,我们可以轻松遍历文件夹并计算所有文件的MD5值,以此确保文件的完整性和一致性。在实际开发中,这样的功能可以集成到各种系统中,为数据安全提供重要保障。

    遍历文件文件夹并导出到XML

    这个“遍历文件文件夹并导出到XML”的例子提供了一个简单的实现,可以帮助初学者理解这两个概念。让我们深入探讨一下。 首先,遍历文件和目录是指程序通过递归或者循环的方式访问指定路径下的所有文件和子目录。在...

    收集的多个ruby遍历文件夹代码实例

    #### 三、Python遍历文件夹输出所有文件名 虽然题目要求的是Ruby的相关知识点,但这里给出的Python代码也体现了遍历文件夹的一种实现方式。 **代码详解:** ```python # coding=utf-8 def GetFileList(dir, ...

    python os.walk 遍历所有文件 文件夹(csdn)————程序.pdf

    `os.walk()`函数是其中的一个重要方法,它用于遍历一个目录树,即递归地遍历目录及其所有子目录,并返回当前目录、子目录列表以及普通文件列表。在给定的标题和描述中,我们可以看到这个功能被用于遍历"test"目录下...

    python编制文件夹及文件名称批量获取小工具

    Python作为一种强大的脚本语言,因其易读性强、库资源丰富而备受青睐。"python编制文件夹及文件名称批量获取小工具"就是这样一个实用程序,它能帮助我们快速地收集和整理指定目录下的文件和子目录信息,极大地提升了...

    python读取当前目录下的CSV文件数据

    这里提供两种方法:一种是按行读取,另一种是按字典形式读取(即将每行数据作为键值对存储)。 ##### 1. 按行读取 如果只需要简单地读取数据而不关心字段名与数据之间的对应关系,可以使用以下方法: ```python ...

Global site tag (gtag.js) - Google Analytics