Python文件遍历os.walk()与os.listdir()使用及说明

Python文件遍历os.walk()与os.listdir()使用及说明

简介

在 Python 中,需要对目录中的文件或者子目录进行遍历来进行文件管理,常用的方法包括 os.walk() 和 os.listdir()。

  • os.listdir() 方法返回指定目录下的所有文件和目录名,不包括子目录内容。它返回的结果是一个列表,可以通过循环语句对其中的文件和目录进行遍历。

  • os.walk() 方法可以遍历一个目录下的所有子目录及文件,返回一个生成器,每次生成一个元组,包含所在文件夹的路径、该文件夹下的所有子目录和文件夹名称、该文件夹下所有文件的名称。我们可以使用 for 循环进行遍历。

os.listdir() 示例

import os

# 打开目录
dir_path = './test'
dir_contents = os.listdir(dir_path)

# 遍历输出
for filename in dir_contents:
    print(filename)

注:'./' 表示当前文件所在目录。

在结果中我们看到,仅仅返回了文件和目录名,不包括下一级目录的文件和子目录。

os.walk() 示例

import os

# 初始目录
dir_path = './test'
# 遍历目录
for foldername, subfolders, filenames in os.walk(dir_path):
    # 输出目录
    print('当前目录为:'+foldername)
    # 输出子目录
    for subfolder in subfolders:
        print('子目录有:' + subfolder)
    # 输出文件名字
    for filename in filenames:
        print('文件有:'+filename)

在结果中我们看到,os.walk() 压缩了 os.listdir() 得到的结果,完整地表示了所在目录的路径,目录下的子目录以及文件,以便对每个文件或者目录进行更特定的操作。

总结

  • os.listdir() 方法只返回指定目录下的所有文件和目录名,适用于基本的文件管理场景。

  • os.walk() 方法可以遍历一个目录下的所有子目录及文件,返回更加完整的目录信息,适用于较为复杂的文件管理场景。

我们应该根据实际需求来选择需要使用的方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python文件遍历os.walk()与os.listdir()使用及说明 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • django中模板的html自动转意方法

    在Django中,模板中的HTML代码会被自动转义,以防止跨站脚本攻击(XSS)。这意味着,如果您在模板中使用HTML代码,它们将被转义为实体,而不是被解释为HTML标记。但是,有时候您可能需要在模板中使用原始的HTML代码,而不是转义后的实体。以下是详细讲解Django中模板的HTML自动转义方法的攻略,包含两个例。 示例1:使用safe过滤器 在Djan…

    python 2023年5月15日
    00
  • Python 使用threading+Queue实现线程池示例

    让我来为你详细讲解如何使用 Python 的 threading 和 Queue 模块来实现线程池。 什么是线程池 线程池是一种提高程序性能和减少资源消耗的技术,它可以实现多个线程共享一个线程池中的资源,减少创建和销毁线程所带来的损耗。线程池的基本实现原理是:在程序启动时创建指定数量的线程,将任务添加到队列中,线程从队列中取出任务并执行,当任务执行完毕后再将…

    python 2023年5月19日
    00
  • Python中的集合介绍

    Python中的集合介绍 在Python中,集合是一种无序的、可变的数据类型,用于存储不重复的元素。集合是一种非常常用的数据类型,可以用于去重、交、并集操作。本文将详细介绍Python中的集合,包括集合的创建、集合的操作、集合的方法等。 集合的创建 要创建一个集合,我们可以使用set()函数或使用花括号{}。例如: # 创建集合 my_set = set([…

    python 2023年5月13日
    00
  • 如何在Python中进行数据预处理?

    以下是如何在Python中进行数据预处理的攻略: 1. 数据读取和观察 在进行数据预处理之前,首先需要正确地读取数据,并对数据进行观察和分析。 1.1 数据读取 使用Python中的pandas库可以方便地读取不同格式的数据,例如CSV、Excel、JSON等。以读取CSV数据为例,可以使用pandas中的read_csv函数: import pandas …

    python 2023年4月19日
    00
  • Python中有哪些关键字及关键字的用法

    Python中有35个关键字,这些关键字被用于识别Python语言中的特定语法结构或者命名空间中特定的名称。下面逐一介绍这些关键字以及它们的用法: False:表示布尔值假 None:表示不存在的对象,经常用于默认参数或者判断是否有返回值。 True:表示布尔值真 and:逻辑与操作符,如果两个操作数都为真,则返回True,否则返回False。 as:用于创…

    python 2023年5月13日
    00
  • Python深入06——python的内存管理详解

    Python深入06 — Python的内存管理详解 1. 引言 本文将深入介绍 Python 中内存管理的一些知识,包括 Python 的垃圾回收机制、对象引用计数、循环引用等问题。同时,我们将对 Python 的内存管理做一些实践和示例。希望读者能够通过本文了解 Python 内存管理的基本原理,提升 Python 程序的性能和稳定性。 2. Pyth…

    python 2023年6月3日
    00
  • Python中第三方库Requests库的高级用法详解

    以下是关于Python中第三方库Requests库的高级用法详解: Python中第三方库Requests库的高级用法详解 requests是Python中一个流行的HTTP库,可以用于向Web服务器发送HTTP请求和接响应。除了基本的GET和POST请求之外,requests库还提供了许多高级用法,以下是Python中第三方库Requests库的高级用法详…

    python 2023年5月14日
    00
  • Vue中keyup.enter和blur事件冲突的问题及解决

    问题描述: 在Vue中,当我们需要在输入框中监听用户输入的“回车”键或输入框失焦的事件时,我们可以分别使用keyup.enter和blur事件。但是,假如我们现在需要同时监听这两个事件,我们会发现它们之间会发生冲突,最终只能触发其中的一个。这是为什么呢?如何能够同时监听这两个事件呢? 解决方法: 一、使用keydown事件替代keyup.enter: 我们可…

    python 2023年6月13日
    00
合作推广
合作推广
分享本页
返回顶部