您的位置:

Python中os.path模块listdir方法:获取目录下所有文件和文件夹的名称

一、基本介绍

Python中os.path模块提供了listdir方法,用于获取目录下所有文件和文件夹的名称。listdir() 方法在Python中是一个很常用的函数,能够帮助我们获取指定文件夹下的所有文件和子文件夹的名称,同时还能够进行筛选。

import os.path

path = "/path/to/dir"  # 目录路径
file_list = os.listdir(path)  # 获取所有文件和文件夹的名称
print(file_list)

在上面的示例中,我们通过导入os.path模块来使用listdir()方法。通过传入目录路径,我们能够获取到该目录下所有的文件和文件夹名称,保存在一个列表中。这些名称不包含路径信息,只是文件和文件夹的名称。

二、获取指定类型的文件

listdir方法默认会获取指定路径下所有的文件和文件夹的名称。如果我们只想获取指定类型的文件,可以通过一些技巧实现。

import os.path

path = "/path/to/dir"  # 目录路径
file_list = [f for f in os.listdir(path) if f.endswith('.txt')]  # 获取所有txt文件的名称
print(file_list)

在上面的示例中,我们通过使用列表表达式的方式,筛选出所有以.txt结尾的文件名称,并将它们保存在一个列表中。

三、获取指定文件夹下的所有文件和子文件夹

除了获取指定路径下的所有文件和文件夹,我们还可以获取指定文件夹下的所有文件和子文件夹的名称。我们可以使用递归方式遍历指定文件夹及其子文件夹,获取所有的文件和文件夹名称。

import os.path

def get_all_files(path):
    # 获取指定路径下所有文件和文件夹的名称
    file_list = os.listdir(path)

    # 遍历所有文件和文件夹
    for f in file_list:
        # 构造完整路径
        full_path = os.path.join(path, f)

        # 如果是文件夹,则递归调用函数
        if os.path.isdir(full_path):
            get_all_files(full_path)

        # 打印文件路径
        print(full_path)

get_all_files("/path/to/dir")  # 获取指定路径下的所有文件和文件夹

在上面的示例中,我们定义了一个递归函数get_all_files,用于获取指定文件夹下的所有文件和子文件夹。

该函数首先会获取该文件夹下所有的文件和文件夹名称,然后遍历所有的文件和文件夹,对于每一个文件夹,我们会递归调用自身函数,获取该文件夹下的所有文件和子文件夹。对于每一个文件,我们会直接打印出其完整路径。

四、结语

Python中os.path模块提供的listdir方法是非常常用的函数,能够帮助我们快速获取指定文件夹下所有文件和文件夹的名称,并且能够进行筛选,支持获取指定扩展名的文件。此外,我们还可以通过递归遍历方式获取指定文件夹下的所有文件和子文件夹。

这篇文章对os.path模块中listdir方法的使用进行了详细的介绍,并提供了示例代码,相信读者看完之后一定会有所收获。