Python 文件名排序
使用natsort包的natsorted方法
from natsort import natsorted
官方說明中有提到
natsort provides a function natsorted that helps sort lists “naturally” (“naturally” is rather ill-defined, but in general it means sorting based on meaning and not computer code point).
natsort 提供一個 natsorted 函數,這個函數可以自然的排列列表(“自然”的定義是不明確的,但是他會根據一定的含義進行排序,而不只是根據計算機代碼)
>> from natsort import natsorted
>> a = ['2 ft 7 in', '1 ft 5 in', '10 ft 2 in', '2 ft 11 in', '7 ft 6 in']
>> natsorted(a)
['1 ft 5 in', '2 ft 7 in', '2 ft 11 in', '7 ft 6 in', '10 ft 2 in']
Note: natsorted is designed to be a drop-in replacement for the built-in sorted function. Like sorted, natsorted does not sort in-place. To sort a list and assign the output to the same variable, you must explicitly assign the output to a variable
注意:natsorted 被設計為內置 sorted 函數的替代品。像 sorted 一樣,natsorted 不會就地排序。要對列表進行排序並將輸出分配給同一個變量,您必須將輸出顯式分配給一個變量
>> a = ['2 ft 7 in', '1 ft 5 in', '10 ft 2 in', '2 ft 11 in', '7 ft 6 in']
>> natsorted(a)
['1 ft 5 in', '2 ft 7 in', '2 ft 11 in', '7 ft 6 in', '10 ft 2 in']
>> print(a) # 'a'並沒有被排序;"natsorted"只是簡單的返回了一個列表
['2 ft 7 in', '1 ft 5 in', '10 ft 2 in', '2 ft 11 in', '7 ft 6 in']
>> a = natsorted(a) # 現在'a'將會被排序,因為將排序過的'a'賦值給了'a'
>> print(a)
['1 ft 5 in', '2 ft 7 in', '2 ft 11 in', '7 ft 6 in', '10 ft 2 in']