📜  如何在 Python 中遍历子文件夹(1)

📅  最后修改于: 2023-12-03 14:52:31.268000             🧑  作者: Mango

如何在 Python 中遍历子文件夹

在编写 Python 代码时,经常需要遍历指定目录下的所有子文件或子文件夹。本教程将介绍如何使用 Python 中的 os 模块和 glob 模块遍历子文件夹。

使用 os 模块遍历子文件夹

os 模块是 Python 标准库中一个提供了许多操作文件和目录的函数的模块。其中就包含了遍历目录、创建/删除目录、获取文件/目录信息等功能。代码如下:

import os

def traverse_folder(root_folder: str):
    # 遍历子文件夹
    for root, dirs, files in os.walk(root_folder):
        print(f'当前目录:{root}')
        # 遍历子文件
        for file in files:
            print(f"文件:{os.path.join(root, file)}")
        # 遍历子文件夹
        for folder in dirs:
            print(f"文件夹:{os.path.join(root, folder)}")

上述代码中,os.walk() 函数接收一个目录路径,返回一个三元组:当前目录路径、当前目录下所有子文件夹名的列表、当前目录下所有文件名的列表。 os.path.join() 函数用于拼接路径,可以跨平台使用。

使用 glob 模块遍历子文件夹

glob 模块是 Python 标准库中一个用于匹配路径字符串的模块。类似于正则表达式,可使用通配符进行匹配。代码如下:

import glob

def traverse_folder(root_folder: str):
    pattern = os.path.join(root_folder, '**')
    # 遍历所有文件和文件夹
    for path in glob.iglob(pattern, recursive=True):
        if os.path.isfile(path):
            print(f"文件:{path}")
        else:
            print(f"文件夹:{path}")

上述代码中,glob.iglob() 函数中的 ** 表示匹配任意层级的子目录。recursive=True 表示递归匹配。

至此,我们介绍了两种方法遍历子文件夹的方法,开发者可以根据具体需求选择更加方便的方法。