Python中os.listdir的排序問題


上周應別人要求,使用python批量修改文件名稱。
文件名有規律,當時就用了一個函數直接精確的用文件名替換了。后來想直接可以用listdir來遍歷每個文件來修改更加通用一些。
但是看了os.listdir發現,它的輸出結果並不是按照某種特定順序來的,這樣輸出就不是固定的。
繼續找資料,發現os.listdir的結果就是一個list集,可以使用list的sort方法來排序。如果文件名中有數字,就用數字的排序,下面貼一下簡單的示例代碼:
files=os.listdir(".")
files.sort()
print files
['1.txt', '10.txt', '11.txt', '2.txt', '3.txt']
files.sort(key= lambda x:int(x[:-4]))
print files
['1.txt', '2.txt', '3.txt', '10.txt', '11.txt']

 

 
 

 


免責聲明!

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



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