为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕森卡 2018-07-07 10:32:46
os.listdir()获得一个4万个文件名,结果是无序的。请问有什么办法有序的保存到这些文件名到list中,文件名如下
查看完整描述

1 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

数据是按字母排序的,如果你要实现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']


查看完整回答
反对 回复 2018-07-14
  • 1 回答
  • 0 关注
  • 1195 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信