欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

情景再現(xiàn)

在做一個(gè)批量讀取文件夾txt文件內(nèi)容后,將文件內(nèi)容寫(xiě)入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()讀出順序亂序問(wèn)題。

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

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

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

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

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

讀出的文件順序是:

在這里插入圖片描述

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

在這里插入圖片描述

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

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

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

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

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

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

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

在這里插入圖片描述

總結(jié)

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

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

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

相關(guān)文章

  • python數(shù)據(jù)分析之聚類(lèi)分析(cluster analysis)

    python數(shù)據(jù)分析之聚類(lèi)分析(cluster analysis)

    聚類(lèi)分析本身不是一個(gè)特定的算法,而是要解決的一般任務(wù)。它可以通過(guò)各種算法來(lái)實(shí)現(xiàn),這些算法在理解群集的構(gòu)成以及如何有效地找到它們方面存在顯著差異。這篇文章主要介紹了python數(shù)據(jù)分析之聚類(lèi)分析(cluster analysis),需要的朋友可以參考下
    2021-11-11
  • Python運(yùn)算符的應(yīng)用超全面詳細(xì)教程

    Python運(yùn)算符的應(yīng)用超全面詳細(xì)教程

    Python運(yùn)算符是為了實(shí)現(xiàn)數(shù)值或字符運(yùn)算的特殊符號(hào)。Python運(yùn)算符可以分為算術(shù)運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符、成員運(yùn)算符、身份運(yùn)算符、比較運(yùn)算符、三目運(yùn)算符等。接下來(lái),我們就開(kāi)始來(lái)學(xué)習(xí)這一堆符號(hào)吧
    2022-07-07
  • Python如何使用type()函數(shù)查看數(shù)據(jù)的類(lèi)型

    Python如何使用type()函數(shù)查看數(shù)據(jù)的類(lèi)型

    這篇文章主要介紹了Python如何使用type()函數(shù)查看數(shù)據(jù)的類(lèi)型,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python VTK計(jì)算曲面的高斯曲率和平均曲率

    Python VTK計(jì)算曲面的高斯曲率和平均曲率

    這篇文章主要介紹了Python VTK計(jì)算曲面的高斯曲率和平均曲率,如何使用戶(hù)Python版本的VTK計(jì)算曲面的高斯曲率并映射在曲面上。本例中使用了兩個(gè)不同的表面,每個(gè)表面根據(jù)其高斯曲率和平均曲率著色,需要的朋友可以參考一下
    2022-04-04
  • Python?Pygame實(shí)戰(zhàn)之打磚塊小游戲

    Python?Pygame實(shí)戰(zhàn)之打磚塊小游戲

    打磚塊最早是由雅達(dá)利公司開(kāi)發(fā)的一款獨(dú)立游戲,也是無(wú)數(shù)人的童年記憶。本文將利用Python中的Pygame模塊制作經(jīng)典的打磚塊游戲,需要的可以參考一下
    2022-02-02
  • 在Python中預(yù)先初始化列表內(nèi)容和長(zhǎng)度的實(shí)現(xiàn)

    在Python中預(yù)先初始化列表內(nèi)容和長(zhǎng)度的實(shí)現(xiàn)

    今天小編就為大家分享一篇在Python中預(yù)先初始化列表內(nèi)容和長(zhǎng)度的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • 對(duì)Django中內(nèi)置的User模型實(shí)例詳解

    對(duì)Django中內(nèi)置的User模型實(shí)例詳解

    今天小編就為大家分享一篇對(duì)Django中內(nèi)置的User模型實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • Python學(xué)生成績(jī)管理系統(tǒng)簡(jiǎn)潔版

    Python學(xué)生成績(jī)管理系統(tǒng)簡(jiǎn)潔版

    這篇文章主要為大家詳細(xì)介紹了簡(jiǎn)潔版的Python學(xué)生成績(jī)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Python中時(shí)間戳轉(zhuǎn)換的實(shí)現(xiàn)

    Python中時(shí)間戳轉(zhuǎn)換的實(shí)現(xiàn)

    時(shí)間和日期處理是至關(guān)重要的任務(wù)之一,本文介紹了在Python中使用time模塊進(jìn)行時(shí)間和時(shí)間戳之間的轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • python?多線程threading程序詳情

    python?多線程threading程序詳情

    這篇文章主要介紹了python?多線程threading程序詳情,Thread類(lèi)表示在單獨(dú)的控制線程中運(yùn)行的活動(dòng),下文相關(guān)資料需要的小伙伴可以參考一下
    2022-04-04

最新評(píng)論