python中读取文件夹中文件名的方法,及os.listdir结果顺序错乱的问题

读取文件夹中文件名的方法:

import os
root_dir = r"E:\研究资料\金属腐蚀\数据及软件\数据及软件\EIS原始数据-sy\20171019" #文件夹目录
files= os.listdir(root_dir) #得到文件夹下的所有文件名称
print(files)

这样读出来的文件名是没有任何问题的,但是有一个问题就是这个文件名的顺序有问题,看下图,本应该40+的在前,但是由于os.listdir本身的算法设计,导致了这种顺序错乱的问题。比如我本身的顺序是{1,2,3,...,100,101},那他读出来后的顺序会变成{1,100,101...,2,3}

os.listdir结果顺序错乱的解决方法

如果文件名的排列顺序是按照文件名中的某一个数字排列的,那可以用sort函数来解决顺序错乱的问题,我这个文件来举例,我的文件名是‘171018-1247_#145.DTA ’、‘171018-1247_#41.DTA’这种类型的,文件格式相同,文件名的前面也一样,是靠红色数字来排序的,那就单独把这个数字取出来用来排序即可,lambda x:int(x[13:-4]是将files各项中的从第十四位到倒数第四位取出返回给key,去掉倒数第四位是去掉.dat,这取出来的数字正是文件名排序的数字。

import os
root_dir = r"E:\研究资料\金属腐蚀\数据及软件\数据及软件\EIS原始数据-sy\20171019" #文件夹目录
files= os.listdir(root_dir) #得到文件夹下的所有文件名称
files.sort(key= lambda x:int(x[13:-4]))
for file in files:
    print(file)

 完成,没有任何问题。

但是如果文件的排序不仅仅是一个数字决定的,这个方法就不太适用了,可以参考这篇博客(20条消息) python读取.txt、.dat等文件,将其中特定内容存到其他文件_一起躺躺躺的博客-CSDN博客_python写入dat文件

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值