Python 获取目录下文件列表

Python 获取目录下文件列表

Python 获取目录下文件列表

1. 引言

在进行文件操作的过程中,常常需要获取某个目录下的文件列表。例如,我们可能需要遍历某个文件夹中的所有文件,或者查找符合特定条件的文件。Python 提供了多种方法来获取目录下的文件列表,本文将详细介绍这些方法,并给出相应的示例代码。

2. 使用 os 模块获取文件列表

Python 的内置模块 os 提供了一些方法来获取文件系统中的信息,包括获取目录下文件列表。我们可以使用 os.listdir() 方法来获取指定目录下的所有文件和文件夹的名称。

import os

def get_file_list(directory):
    file_list = os.listdir(directory)
    return file_list

以下是一个使用示例:

file_list = get_file_list("path/to/directory")
print(file_list)

运行结果类似如下:

['file1.txt', 'file2.py', 'subdirectory']

通过使用 os.listdir() 方法,我们可以轻松地获取目录下的文件列表。

3. 使用 glob 模块获取文件列表

Python 的第三方库 glob 提供了一个更简单的方法来获取文件列表,支持使用通配符进行模式匹配。我们可以使用 glob.glob() 方法来获取符合指定模式的文件列表。

import glob

def get_file_list(pattern):
    file_list = glob.glob(pattern)
    return file_list

以下是一个使用示例:

file_list = get_file_list("path/to/directory/*")
print(file_list)

运行结果类似如下:

['path/to/directory/file1.txt', 'path/to/directory/file2.py']

通过使用 glob.glob() 方法,我们可以方便地获取符合特定模式的文件列表。

4. 使用 pathlib 模块获取文件列表

Python 3.4+ 引入了 pathlib 模块,它提供了一种面向对象的路径操作方式。我们可以使用 pathlib.Path 类来获取目录下的文件列表,并进行更多的路径操作。

from pathlib import Path

def get_file_list(directory):
    path = Path(directory)
    file_list = [str(file) for file in path.iterdir() if file.is_file()]
    return file_list

以下是一个使用示例:

file_list = get_file_list("path/to/directory")
print(file_list)

运行结果类似如下:

['path/to/directory/file1.txt', 'path/to/directory/file2.py']

通过使用 pathlib.Path 类,我们可以更加灵活地进行路径操作,并获取目录下的文件列表。

5. 遍历子目录获取文件列表

如果要获取某个目录下所有子目录中的文件列表,我们可以使用递归的方式来实现。下面是一个使用递归方法获取目录下文件列表的示例代码:

import os

def get_file_list(directory):
    file_list = []
    for root, dirs, files in os.walk(directory):
        for file in files:
            file_list.append(os.path.join(root, file))
    return file_list

以下是一个使用示例:

file_list = get_file_list("path/to/directory")
print(file_list)

运行结果类似如下:

['path/to/directory/file1.txt', 'path/to/directory/subdirectory/file2.py']

通过使用递归的方式,我们可以获取指定目录下所有子目录中的文件列表。

6. 文件筛选

有时候,我们需要获取符合特定条件的文件列表,例如按文件扩展名筛选文件。我们可以通过在获取文件列表后,对其进行筛选来实现。

以下是一个示例代码,用于获取目录下所有的 .txt 文件:

import os

def get_file_list(directory):
    file_list = os.listdir(directory)
    txt_files = [file for file in file_list if file.endswith(".txt")]
    return txt_files

以下是一个使用示例:

txt_files = get_file_list("path/to/directory")
print(txt_files)

运行结果类似如下:

['file1.txt', 'file2.txt']

通过筛选文件列表,我们可以获取到符合特定条件的文件列表。

7. 总结

本文介绍了使用 Python 获取目录下文件列表的多种方法。我们可以使用 os 模块的 os.listdir() 方法、glob 模块的 glob.glob() 方法、pathlib 模块的 pathlib.Path 类、以及递归的方式来实现。另外,我们还介绍了如何对文件列表进行筛选,获取符合特定条件的文件列表。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程