Python Cookbook 5.5: 根据内嵌数字将字符串排序
Python默认字符串排序是基于字母的。更好的方法是把文件按数字分解成一个list,并把数字项替换成int型,最后按分解后的list进行排序。
1 import re 2 3 filenames = [ 'file10.txt', 'file1.txt', 'file2.txt',\ 4 'file04.txt', 'afile12.txt'] 5 6 rx_digit = re.compile(r'(\d+)') 7 8 def mapper(filename): 9 aux = rx_digit.split(filename) 10 aux[1::2] = map(int, aux[1::2]) 11 return aux 12 13 print sorted(filenames, key=mapper)