使用Python的os库遍历目录树并列出所有文件
在操作系统中,有时候需要对某个目录及其子目录下所有文件进行操作,这就需要遍历目录树来获取所有文件的路径。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()方法,都可以得到目录下所有文件的路径列表,以便进行后续的文件操作。
