Python获取目录下所有子目录

Python获取目录下所有子目录

Python获取目录下所有子目录

1. 引言

在日常的编程工作中,有时我们需要获取一个目录下的所有子目录。可能是为了遍历目录下的文件,或者是为了统计目录下的文件个数等等。而使用Python编程语言,可以简便地实现这个功能。本文将详细介绍如何使用Python获取一个目录下所有的子目录。

2. os模块

在Python中,我们可以使用os模块来进行文件和目录的操作。os模块提供了许多有用的函数来处理文件和目录,包括获取路径,列出目录内容,创建和删除目录等等。

首先,我们需要导入os模块:

import os

3. os.listdir()函数

要获取一个目录下的所有子目录,我们首先需要知道该目录的路径。然后,我们可以使用os.listdir()函数来列出该目录下的所有文件和子目录。os.listdir()的参数是一个路径,返回一个包含目录下所有文件和子目录名称的列表。

下面是一个示例,我们通过os.listdir()函数获取当前目录下的所有文件和子目录的名称:

import os

# 获取当前目录下的所有文件和子目录
files = os.listdir('./')

# 遍历打印所有文件和子目录的名称
for file in files:
    print(file)

代码运行结果:

file1.txt
file2.txt
subdir1
subdir2

从代码运行结果可以看出,os.listdir()函数返回了当前目录下的所有文件(file1.txt和file2.txt)和子目录(subdir1和subdir2)的名称。

4. 递归遍历子目录

一般情况下,我们不仅需要获取一个目录下的子目录,还需要获取子目录中的子目录,甚至是更深层次的子目录。

为了实现这一功能,我们可以使用递归的方法。递归指的是函数调用自身的过程。在我们的示例中,我们可以编写一个递归函数来获取一个目录下的所有子目录。

下面是一个递归函数get_subdirs()的示例代码,该函数会输出指定目录下的所有子目录的名称:

import os

def get_subdirs(directory):
    """
    获取指定目录下的所有子目录名称
    """
    subdirs = [] # 保存子目录名称的列表

    # 获取指定目录下的所有文件和子目录的名称
    files = os.listdir(directory)

    # 遍历所有文件和子目录的名称
    for file in files:
        # 构建文件或子目录的完整路径
        filepath = os.path.join(directory, file)

        # 判断是否为子目录
        if os.path.isdir(filepath):
            subdirs.append(filepath) # 将子目录路径添加到列表中
            subdirs += get_subdirs(filepath) # 递归获取子目录的子目录

    return subdirs

然后,我们可以调用get_subdirs()函数来获取一个目录下的所有子目录的名称。下面是一个示例代码:

import os

def get_subdirs(directory):
    """
    获取指定目录下的所有子目录名称
    """
    subdirs = [] # 保存子目录名称的列表

    # 获取指定目录下的所有文件和子目录的名称
    files = os.listdir(directory)

    # 遍历所有文件和子目录的名称
    for file in files:
        # 构建文件或子目录的完整路径
        filepath = os.path.join(directory, file)

        # 判断是否为子目录
        if os.path.isdir(filepath):
            subdirs.append(filepath) # 将子目录路径添加到列表中
            subdirs += get_subdirs(filepath) # 递归获取子目录的子目录

    return subdirs

# 获取当前目录下的所有子目录
subdirs = get_subdirs('./')

# 遍历打印所有子目录的名称
for subdir in subdirs:
    print(subdir)

代码运行结果:

./subdir1
./subdir1/subsubdir1
./subdir2

从代码运行结果可以看出,get_subdirs()函数成功获取了当前目录下的所有子目录的名称。

5. 总结

通过使用Python的os模块,我们可以轻松地获取一个目录下的所有子目录。通过递归遍历子目录,我们还可以获取更深层次的子目录。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程