使用Python對檔名進行排序
阿新 • • 發佈:2019-02-08
經常在Linux下操作檔案,要對一組檔名儲存起來使用的時候,需要排序,但是檔名是字串,自然排序結果會出現這種問題:
源資料:
5.rb 2.rb 201.rb 51.rb 7.rb 4.rb
系統提供的排序方法結果是這樣的:
2.rb 201.rb 4.rb 5.rb 51.rb 7.rb
這明顯是不對的,201當然應該排在最後,只是當成字串來處理,就會有這樣的問題,所以用Python寫個小程式再處理一遍:
l = ['5.rb', '2.rb', '201.rb', '51.rb', '7.rb', '4.rb'] print 'Before:' print l for i in range(len(l)): l[i] = l[i].split('.') l[i][0] = int(l[i][0]) print 'After:' print l l.sort() print 'Sorted:' print l for i in range(len(l)): l[i][0] = str(l[i][0]) l[i] = l[i][0] + '.' + l[i][1] print 'Recover:' print l
思路很簡單,把檔名拆分之後轉成整數,再排序,然後再轉回來即可。
執行結果: