解决python osdir() 函数 文件夹排序问题

问题描述:在利用python进行文件操作时,利用osdir将一个文件夹下所有文件读取进来得到一个列表list,然后在循环中循环这list就可以顺序处理这个文件夹内所有文件。但是会遇到问题,比如说:这个文件夹中是我需要读取的文件,它是按顺序的。But! 利用osdir函数读取时候

在这里插入图片描述

未进行处理情况,我们可以看到这个顺序,红色圈圈和箭头,并不是我们需要的,查找资料我得知这是由于osdir函数本身会按照读取的排序,这个顺序感觉是是按照字符逐字排的。这个顺序并不是我们想要的啊!

在这里插入图片描述
路径错误情况

解决方法! 两个

第一,调用sort函数,并在其中切片处理,对文件进行排序

  iter_my = os.listdir(patient_input_path)
  iter_my.sort(key=lambda x: int(x.split('_')[1][:-4]))
解释:调用sort函数,利用key=lambda排序,这里关注后面 x: int(x.split(’_’)[1][:-4]),我的文件名:XXXXX_X.bin这样格式;
先利用分割split将文件名分割,然后再利用切片,这样排序的就只有 1,2,3,4,。。。。就可以达到顺序排序目的。结果如下。

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值