Python把目录下所有文件加载出来

在开发中,经常需要对目录下的所有文件进行操作,这就需要我们先找到目录中的所有文件。Python提供了一些内置的模块和函数来实现这个功能。本文将介绍几种常用的方法来加载目录下的所有文件,并提供相应的代码示例。

方法一:使用os模块

Python的os模块提供了一些与操作系统相关的功能,包括文件和目录操作。我们可以使用os模块的listdir函数来获取目录下的所有文件和目录。

import os

def get_files(dir_path):
    files = []
    for file_name in os.listdir(dir_path):
        file_path = os.path.join(dir_path, file_name)
        if os.path.isfile(file_path):
            files.append(file_path)
    return files

上述代码中,listdir函数返回指定目录下的所有文件和目录的名称列表。我们遍历这个列表,使用join函数拼接出文件的完整路径,并使用isfile函数判断是否为文件。如果是文件,则将其路径添加到文件列表中。最后,返回文件列表。

方法二:使用glob模块

Python的glob模块提供了一个函数来根据指定的规则匹配文件和目录。我们可以使用glob模块的glob函数来获取目录下的所有文件。

import glob

def get_files(dir_path):
    file_pattern = os.path.join(dir_path, '*')
    files = glob.glob(file_pattern)
    return files

上述代码中,我们使用join函数将目录路径和通配符*拼接成一个文件匹配模式。然后,使用glob函数匹配文件模式,并返回匹配到的文件列表。

方法三:使用os.walk函数

Python的os模块还提供了一个函数walk,可以遍历目录树。我们可以使用这个函数来获取目录下的所有文件。

import os

def get_files(dir_path):
    files = []
    for root, dir_names, file_names in os.walk(dir_path):
        for file_name in file_names:
            file_path = os.path.join(root, file_name)
            files.append(file_path)
    return files

上述代码中,walk函数返回一个生成器,我们遍历这个生成器中的每个元组。每个元组包含三个值:当前目录的路径,当前目录下的子目录列表,当前目录下的文件列表。我们遍历文件列表,使用join函数拼接出文件的完整路径,并将其添加到文件列表中。

总结

本文介绍了三种常用的方法来加载目录下的所有文件,分别是使用os模块的listdir函数、使用glob模块的glob函数和使用os模块的walk函数。这些方法各有优劣,可以根据实际需求选择合适的方法。在使用这些方法时,我们可以结合其他的功能和模块,如文件过滤、文件读取等,来完成更加复杂的操作。

以下是代码的序列图表示:

sequenceDiagram
    participant 用户
    participant Python脚本
    participant OS模块
    participant Glob模块
    participant 文件系统

    用户->>Python脚本: 调用get_files函数
    Python脚本->>OS模块: 调用listdir函数
    OS模块->>文件系统: 获取目录下的文件和目录列表
    文件系统-->>OS模块: 返回文件和目录列表
    OS模块->>Python脚本: 返回文件列表
    用户->>Python脚本: 调用get_files函数
    Python脚本->>Glob模块: 调用glob函数
    Glob模块->>文件系统: 根据文件匹配模式获取文件列表
    文件系统-->>Glob模块: 返回文件列表
    Glob模块->>Python脚本: 返回文件列表
    用户->>Python脚本: 调用get_files函数
    Python脚本->>OS模块: 调用walk函数
    OS模块->>文件系统: 遍历目录树
    文件系统-->>OS模块: 返回目录树中的文件和目