python——os.listdir 排序亂序問題


---恢復內容開始---

今天編寫代碼遇到了問題,讀取一個文件夾下的文件時,文件亂序,沒有按自己想要的順序輸出,然后百度了一下,雖然已解決,但沒有徹底解決。

剛開始的輸出文件順序:【備注共有96個文件,我只輸出前五項】

['real-mask-ro-10b-20170402194753-0-83297987.fit',
'real-mask-ro-16b-20170402201432-2-83298014.fit',
'real-mask-ro-13r-20170402201432-2-83298014.fit',
'real-mask-ro-16r-20170402201432-2-83298014.fit',
'real-mask-ro-16r-20170402194753-0-83297987.fit',
'real-mask-ro-09b-20170402201432-2-83298014.fit',]

對於ro-后的數字進行排序:

采用的代碼:

dir ='F:/Home_01/'#當前目錄
filenames=os.listdir(dir)#filenames存儲dir下的所有文件名。
filenames=os.listdir(dir)
filenames.sort(key=lambda x:int(x[13:15]))#以字符串的第14到16位的數字從小到大排序  

 結果:

['real-mask-ro-01b-20170402194753-0-83297987.fit',
'real-mask-ro-01r-20170402201432-2-83298014.fit',
'real-mask-ro-01b-20170402200113-1-83298001.fit',
'real-mask-ro-01r-20170402200113-1-83298001.fit',
'real-mask-ro-01b-20170402201432-2-83298014.fit',
'real-mask-ro-01r-20170402194753-0-83297987.fit']

我想要的結果是01b一起輸出,然后嘗試默認排序,采用代碼:

filenames.sort()

結果:

['real-mask-ro-01b-20170402194753-0-83297987.fit',
'real-mask-ro-01b-20170402200113-1-83298001.fit',
'real-mask-ro-01b-20170402201432-2-83298014.fit',
'real-mask-ro-01r-20170402194753-0-83297987.fit',
'real-mask-ro-01r-20170402200113-1-83298001.fit',
'real-mask-ro-01r-20170402201432-2-83298014.fit']

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM