欢迎访问宙启技术站
智能推送

使用Python的os库遍历目录树并列出所有文件

发布时间:2023-05-28 04:19:58

在操作系统中,有时候需要对某个目录及其子目录下所有文件进行操作,这就需要遍历目录树来获取所有文件的路径。Python的os库中封装了一些方便的方法用于遍历目录树、列出目录和文件、创建、删除或移动目录和文件等操作。

遍历目录树的方法有os.walk()和os.listdir()两种。其中,os.walk()方法会返回一个生成器对象,该对象递归地遍历目录树,并返回每一个子目录中的文件和目录。os.listdir()方法则只会返回某一目录下的所有文件和目录,不包含子目录。

下面我将介绍如何使用Python的os库来遍历目录树并列出所有文件的步骤。

步:导入os库

首先需要在Python代码中导入os库,使用以下语句即可:

import os

第二步:设置遍历起始目录

接下来需要设置要遍历的起始目录,可以通过输入绝对路径或者相对路径来指定起始目录。假设想要遍历当前目录的所有子目录和文件,可使用以下代码:

start_dir = "./"

第三步:使用os.walk()方法遍历目录树

接下来需要使用os.walk()方法递归地遍历目录树,该方法返回一个生成器对象,每次遍历到一个文件或目录时都会返回一个包含三个元素的元组,分别为当前目录路径、当前目录下所有子目录的列表、当前目录下所有文件的列表。因此只需遍历生成器即可得到所有文件的路径。

以下是使用os.walk()方法遍历目录树的代码示例:

for dirpath, dirnames, filenames in os.walk(start_dir):
    for filename in filenames:
        filepath = os.path.join(dirpath, filename)
        print(filepath)

上述代码中,首先使用os.walk()方法遍历目录树,返回当前目录路径dirpath,当前目录下所有子目录的列表dirnames和当前目录下所有文件的列表filenames。之后通过一个嵌套的循环遍历filenames列表,得到每个文件的路径filepath并输出。

第四步:使用os.listdir()方法列出目录下所有文件

除了使用os.walk()方法递归地遍历目录树,还可以使用os.listdir()方法列出当前目录下的所有文件和目录,不包含子目录。该方法返回当前目录中所有文件和目录的列表,可以通过遍历该列表获取每个文件的路径。

以下是使用os.listdir()方法列出当前目录下所有文件的代码示例:

for filename in os.listdir(start_dir):
    filepath = os.path.join(start_dir, filename)
    if os.path.isfile(filepath):
        print(filepath)

上述代码中,首先使用os.listdir()方法列出当前目录下所有文件和目录的列表,之后遍历该列表并使用os.path.join()方法将当前目录路径和文件名拼接为完整路径,再使用os.path.isfile()方法判断该路径是否为文件路径,如果是则输出该文件路径。

综上所述,使用Python的os库可以方便地遍历目录树并列出所有文件。无论是使用os.walk()方法还是os.listdir()方法,都可以得到目录下所有文件的路径列表,以便进行后续的文件操作。