Python中os.listdir() 获取指定目录中的文件和子目录的列表

 更新时间:2025年04月29日 10:54:57   作者:彬彬侠  
os.listdir()是Python os模块中的一个函数,用于获取指定目录中的文件和子目录的列表,本文主要介绍了Python中os.listdir() 获取指定目录中的文件和子目录的列表,感兴趣的可以了解一下

os.listdir() 函数

os.listdir() 是 Python os 模块中的一个函数,用于获取指定目录中的文件和子目录的列表。它返回一个包含 目录内容 的 列表,但不会递归进入子目录。

1. os.listdir() 语法

import os

os.listdir(path=".")

参数:

  • path(可选):要列出文件和目录的路径,默认为当前目录(.)。
  • 返回值:一个 列表,其中包含指定目录下的 文件 和 子目录 的 名称(不包含路径)。

返回类型:

  • 列表(list),其中的元素是文件和目录的名称(字符串)。

2. 基本用法示例

2.1 列出当前目录中的所有文件和文件夹

import os

# 列出当前目录的所有文件和子目录
file_list = os.listdir()
print(file_list)

2.2 列出指定目录中的所有文件和子目录

import os

# 指定一个目录
path = "/path/to/directory"

# 列出该目录下的所有文件和子目录
file_list = os.listdir(path)
print(file_list)

3. 配合 os.path 进行筛选

3.1 区分文件和目录

os.listdir() 只返回名称,如果你想要区分文件和目录,需要使用 os.path.isdir() 和 os.path.isfile()

import os

path = "/path/to/directory"
all_items = os.listdir(path)

# 过滤出文件
files = [f for f in all_items if os.path.isfile(os.path.join(path, f))]
print("Files:", files)

# 过滤出目录
directories = [d for d in all_items if os.path.isdir(os.path.join(path, d))]
print("Directories:", directories)

4. 与 glob 和 fnmatch 结合进行筛选

如果你想获取特定类型的文件(如 .txt、.jpg 等),可以结合 glob 或 fnmatch 进行筛选。

4.1 使用 glob 获取特定类型的文件

import glob

# 获取当前目录下所有的 .txt 文件
txt_files = glob.glob("*.txt")
print(txt_files)

4.2 使用 fnmatch 进行文件匹配

import os
import fnmatch

path = "/path/to/directory"
all_files = os.listdir(path)

# 只匹配 .txt 文件
txt_files = [f for f in all_files if fnmatch.fnmatch(f, "*.txt")]
print(txt_files)

5. 遍历所有文件(包括子目录)

os.listdir() 只返回 当前目录 下的内容,不会递归进入子目录。如果你需要遍历所有子目录,可以使用 os.walk()

import os

path = "/path/to/directory"

for root, dirs, files in os.walk(path):
    print("Current directory:", root)
    print("Subdirectories:", dirs)
    print("Files:", files)

6. 与 sorted() 结合使用

可以对 os.listdir() 返回的列表进行排序,按照名称、大小或修改时间排序。

6.1 按文件名排序

import os

path = "/path/to/directory"
sorted_list = sorted(os.listdir(path))
print(sorted_list)

6.2 按文件大小排序

import os

path = "/path/to/directory"
files = os.listdir(path)

# 获取按大小排序的文件列表
sorted_files = sorted(files, key=lambda f: os.path.getsize(os.path.join(path, f)))

print(sorted_files)

6.3 按修改时间排序

import os

path = "/path/to/directory"
files = os.listdir(path)

# 获取按修改时间排序的文件列表
sorted_files = sorted(files, key=lambda f: os.path.getmtime(os.path.join(path, f)))

print(sorted_files)

7. os.scandir() vs os.listdir()

Python 3.5 以后,推荐使用 os.scandir(),它比 os.listdir() 更高效,并且可以直接获取文件类型、大小等信息。

import os

path = "/path/to/directory"

with os.scandir(path) as entries:
    for entry in entries:
        print(f"Name: {entry.name}, Is file: {entry.is_file()}, Is directory: {entry.is_dir()}")

8. 总结

方法说明
os.listdir(path)获取目录下的所有文件和子目录(不包括路径)
os.path.isfile(path)判断路径是否是文件
os.path.isdir(path)判断路径是否是目录
os.walk(path)递归遍历目录下的所有文件和子目录
os.scandir(path)更高效的目录遍历方式
sorted(os.listdir(path))按文件名排序
glob.glob("*.txt")获取指定类型的文件

到此这篇关于Python中os.listdir() 获取指定目录中的文件和子目录的列表的文章就介绍到这了,更多相关Python os.listdir() 获取目录文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python之 requests的使用(一)

    Python之 requests的使用(一)

    requests是一个很实用的Python HTTP客户端库,爬虫和测试服务器响应数据时经常会用到,requests是Python语言的第三方的库,专门用于发送HTTP请求,使用起来比urllib简洁很多,这篇文章主要介绍requests的基础用法
    2023-04-04
  • 用实例说明python的*args和**kwargs用法

    用实例说明python的*args和**kwargs用法

    python的*args和**kwargs如何用,看了下面的例子你就清楚了。
    2013-11-11
  • Python XML转Json之XML2Dict的使用方法

    Python XML转Json之XML2Dict的使用方法

    今天小编就为大家分享一篇Python XML转Json之XML2Dict的使用方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python 自动化偷懒的四个实用操作

    python 自动化偷懒的四个实用操作

    这篇文章主要介绍了python 自动化偷懒的四个实用操作,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-04-04
  • 使用Pandas的ExcelWriter操作excel的方法

    使用Pandas的ExcelWriter操作excel的方法

    这篇文章主要介绍了使用Pandas的ExcelWriter操作excel的方法,ExcelWriter这个插件有个坑,就是已经设置好的格式是无法更改的,因此,由pandas转成excel的时候,必须将格式清除,尤其是表头的格式需要大家多多注意,本文结合示例代码讲解的非常详细,需要的朋友参考下吧
    2023-11-11
  • 基于Python编写简易版的天天跑酷游戏的示例代码

    基于Python编写简易版的天天跑酷游戏的示例代码

    这篇文章主要介绍了如何利用Python编写一个简易版的天天跑酷游戏,文中的示例代码讲解详细,对我们学习Python有一定帮助,需要的可以参考一下
    2022-03-03
  • Pandas使用query()优雅的查询实例

    Pandas使用query()优雅的查询实例

    本文主要介绍了Pandas使用query()优雅的查询实例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Python+OpenCV让电脑帮你玩微信跳一跳

    Python+OpenCV让电脑帮你玩微信跳一跳

    这篇文章主要为大家详细介绍了Python+OpenCV让电脑帮你玩微信跳一跳,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Python heapq使用详解及实例代码

    Python heapq使用详解及实例代码

    这篇文章主要介绍了Python heapq使用详解及实例代码的相关资料,需要的朋友可以参考下
    2017-01-01
  • Python实现yaml与json文件批量互转

    Python实现yaml与json文件批量互转

    这篇文章主要为大家详细介绍了如何利用Python语言实现yaml与json文件的批量互转,文中的示例代码讲解详细,感兴趣的小伙伴可以动手尝试一下
    2022-07-07

最新评论