1. 程式人生 > >使用Python對檔名進行排序

使用Python對檔名進行排序

經常在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

思路很簡單,把檔名拆分之後轉成整數,再排序,然後再轉回來即可。

執行結果: