问题描述:在利用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,。。。。就可以达到顺序排序目的。结果如下。