最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python如何按照自己順序讀出文件名

 更新時(shí)間:2023年08月17日 08:54:25   作者:JackWang(dog)  
這篇文章主要介紹了python如何按照自己順序讀出文件名問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

情景再現(xiàn)

在做一個(gè)批量讀取文件夾txt文件內(nèi)容后,將文件內(nèi)容寫入excel表格的簡(jiǎn)單腳本時(shí)使用到了os.listdir()函數(shù)。

當(dāng)腳本完成后檢查excel表格內(nèi)容時(shí)發(fā)現(xiàn)表格內(nèi)容順序和txt文件順序不一樣,這就導(dǎo)致我剩下的工作全部GG(超級(jí)難受)。

然后就去著手解決python os.listdir()讀出順序亂序問題。

為什么os.listdir()讀出會(huì)亂序?

我也不知道,那位大佬知道了麻煩評(píng)論教教我!?。。?!

解決亂序(即按照自己的要求排序)

首先看一般情況下讀出順序:

files= os.listdir(path) #得到文件夾下的所有文件名稱

讀出的文件順序是:

在這里插入圖片描述

而在文件夾中所顯示的文件排列順序確實(shí)這樣的:

在這里插入圖片描述

這個(gè)順序是不是很讓人摸不到頭腦。

該怎么按照我們想要的順序排列呢?

我后來想一想,這讀出來的文件名字不就一列表嘛,我們把這個(gè)列表按我們想要的順序排列好不就可以啦。

我們可以看到文件夾中的排序方式是先按照cache后的數(shù)字排序然后再按照第五個(gè)字母 a,b,s排序。

所以我們就按照這個(gè)方式來排序。

def takeNumber(elem): #獲取cache后面的數(shù)字
    pattern = re.compile('cache(.+).txt')
    num = int(pattern.findall(elem)[0])
    return num
files= os.listdir(path) #得到文件夾下的所有文件名稱
txts = []
all_data = []
files.sort(key=takeNumber)
files.sort(key= lambda x: x[4])   #lambda函數(shù)也叫匿名函數(shù),即,函數(shù)沒有具體的名稱

最后看結(jié)果就是我們想要的順序:

在這里插入圖片描述

總結(jié)

總而言之,讀出文件的順序可以轉(zhuǎn)化為對(duì)列表的排序。這類排序沒有固定的方法,見招拆招,兵來將擋,水來土掩才是好辦法。

另外,對(duì)于正則表達(dá)式和lambda匿名函數(shù)也要有一定的了解才能做好(別問我是怎么知道的,菜雞落淚)。

以上僅為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

扶绥县| 蓝山县| 山东省| 象州县| 绿春县| 天水市| 修武县| 枞阳县| 永胜县| 若尔盖县| 舟曲县| 固阳县| 三门县| 精河县| 宁阳县| 新和县| 云林县| 同心县| 原平市| 五华县| 静乐县| 探索| 苏尼特右旗| 柏乡县| 广德县| 左云县| 高清| 洞头县| 茶陵县| 南阳市| 湾仔区| 唐河县| 汨罗市| 嘉义县| 易门县| 林口县| 曲水县| 成安县| 荆门市| 麻栗坡县| 和顺县|