Python读取文件夹文件排序方法:os.listdir与sorted详解

唐可
唐可
发布时间:2026-10-15 | 6人浏览过
原创

本文介绍在Python中如何按顺序读取文件夹内的文件。针对os.listdir()返回结果无序的问题,提供两种解决方案:一是通过正则或字符串处理提取文件名中的数字进行排序;二是直接使用sorted()函数对路径列表进行字典序排序。文章包含具体代码示例,适用于需要按特定顺序处理训练日志或数据集的场景。

Python读取文件夹文件排序问题

在Python开发中,经常需要遍历并读取指定文件夹下的所有文件。然而,直接使用os.listdir()获取的文件名列表通常是无序的,这可能导致后续处理逻辑出错。因此,对获取到的文件名列表进行排序是必要的前置步骤。

基于文件名的排序实现

若文件命名包含有序的数字标识(如Epoch1.txt, Epoch2.txt),可以通过提取这些数字作为排序依据。具体实现逻辑如下:

def file_name(path):
    train_loss_list = []
    val_loss_list = []
    loss_file_name = []
 
    files = os.listdir(path)  # 采用listdir来读取所有文件
    for i in files:
        loss_file_name.append(i.strip("Epoch"))
 
    loss_file_name.sort(key=lambda x: int(x[:x.find("-")]))  # 按照前面的数字字符排序
    print(loss_file_name)

经过上述排序处理后,文件列表将严格按照预设顺序排列。此时,开发者可以方便地利用切片操作,按顺序提取训练(train)和验证(val)阶段的loss数据,进而进行可视化绘图分析。

通用排序读取方法

附录:Python实现按名称顺序读取文件夹文件的通用方法

import os
path="/home/test/"  #待读取的文件夹
path_list=os.listdir(path)
path_list.sort() #对读取的路径进行排序
for filename in path_list:
	print(os.path.join(path,filename))

总结

至此,关于如何使用Python按顺序读取文件夹中文件的内容已介绍完毕。如需了解更多Python文件读取与处理技巧,建议查阅本站往期文章或继续浏览后续相关内容。感谢大家的支持!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表