猿问

python的os.listdir()的使用疑惑

os.listdir()获得一个4万个文件名,结果是无序的。请问有什么办法有序的保存到这些文件名到list中,文件名如下

慕森卡
浏览 1196回答 1
1回答

呼如林

数据是按字母排序的,如果你要实现13_left.jpg, 14_left.jpg.....13_right.jpg, 14_right.jpg这样的顺序,就得写个排序方法做排序。import os def compare(x, y):     xparts = x.split('_')     yparts = y.split('_')     if len(xparts) > 1 and len(yparts) > 1:         if xparts[1] == yparts[1]:             try:                 return cmp(int(xparts[0]),int(yparts[0]))             except:                 pass             return cmp(xparts[0], yparts[0])         else:             return cmp(xparts[1], yparts[1])     else:         return cmp(x, y) items = os.listdir('./tmp') print items items.sort(compare) print items输出:['10_right.jpg', '11_right.jpg', '1_left.jpg', '1_right.jpg', '20_left.jpg', '2_left.jpg', '2_right.jpg']['1_left.jpg', '2_left.jpg', '20_left.jpg', '1_right.jpg', '2_right.jpg', '10_right.jpg', '11_right.jpg']
随时随地看视频慕课网APP
我要回答