Python获取文件夹下所有文件的三种常用方法

落日邮差
落日邮差
发布时间:2026-10-16| 2人浏览过
原创

本文介绍Python中获取文件夹下所有文件的三种常用方法:os.listdir、os.walk和glob.glob。os.listdir仅返回当前目录名称;os.walk可递归遍历子文件夹并返回路径、子目录及文件名;glob.glob支持通配符过滤并返回带路径的文件名。文章提供示例代码及注意事项,帮助开发者根据需求选择合适方案。

前言

在Python开发中,获取指定文件夹下的所有文件是一项常见需求,实现这一目标有多种不同的方法可供选择。

1. os.listdir

os.listdir函数接收一个文件夹路径作为参数,能够返回该文件夹下所有的子文件夹和文件名称列表。

示例:

import os

path = 'D:\Workspace'
for file_name in os.listdir(path):
    print(file_name)

需要注意的是,该方法无法返回子文件夹内的文件,且仅返回名称而不包含完整路径信息。

2. os.walk

os.walk函数同样接收文件夹路径作为参数,但其返回值包含三个部分:当前绝对路径、子文件夹列表以及文件名列表。此方法的优势在于可以遍历文件夹下的所有文件、子文件夹及其内部的所有文件。

例如:

D:/workspace/folder/text1.txt D:/workspace/folder/text2.txt

当输入的path参数为D:/workspace时,第一次遍历会获取/workspace目录下的所有文件和文件夹;第二次遍历则会获取/workspace/folder目录下的所有文件和文件夹。因此,需要对返回结果进行循环处理,以获取所有文件。

示例:

import os

path = 'D:\Workspace'
for root, dirs, files in os.walk(path):
    print(root)
    print(dirs)
    print(files)

返回:

D:\Workspace ['folder'] [] D:\Workspace\folder [] ['text1.txt', 'text2.txt']

3. glob.glob

glob函数接收路径以及文件过滤条件作为参数,若不设置过滤条件需填写为*,此函数会返回包括路径的文件夹和文件名列表。

示例:

import glob

path = 'D:\Workspace\folder\*'
for file_abs in glob.glob(path):
    print(file_abs)

返回:

D:\Workspace\folder\text1.txt D:\Workspace\folder\text2.txt

需要注意的是,该方法不能返回子文件夹下的文件,但会返回文件名与绝对路径的组合。

附:Python获取指定目录下的文件夹名列表和文件名列表

import os
 
# enter of program
if __name__ == '__main__':
    # input
    input_path = 'D:/data/pycodes/books/'
 
    # initialize
    dir_list = []
    file_list = []
 
    # process
    for root, dirs, files in os.walk(input_path):
        dir_list = dirs
        file_list = files
        break
 
    # output
    print(dir_list, len(dir_list))
    print(file_list, len(file_list))

总结

到此这篇关于利用Python获取文件夹下所有文件的文章就介绍到这了,更多相关Python获取文件夹所有文件内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。