os.listdir排序混乱

os.listdir(os.path.join(path, ‘images’)):


问题描述:

提示:这里描述项目中遇到的问题:
os.listdir()排序是随机的

    rgb = []
    deep = []
    for i in os.listdir(os.path.join(path, 'images')):
        for j in os.listdir(os.path.join(path, 'images', i)):
            for k in os.listdir(os.path.join(path, 'images', i, j)):
                if k.find('RGB.jpg') != -1:
                    img = Image.open(os.path.join(path, 'images', i, j, k))
                    img = img.resize((224, 224))
                    rgb.append(np.array(img))
                elif k.find('Deep.jpg') != -1:
                    img = Image.open(os.path.join(path, 'images', i, j, k))
                    img = img.resize((224, 224))
                    img = np.array(img)
                    img = img[:, :, np.newaxis]
                    deep.append(img)
    q_input = np.array(q_list)
    a_output = np.array(a_list)
    rgb_input = np.array(rgb)
    deep_input = np.array(deep)

原因分析:

debug才发现。。。难受

解决方案:

    rgb = []
    deep = []
    path1 = os.listdir(os.path.join(path, 'images'))
    path1.sort(key=lambda x:int(x.split('.')[0]))
    for i in path1:
        path2 = os.listdir(os.path.join(path, 'images', i))
        path2.sort(key=lambda x:int(x.split('.')[0]))
        for j in path2:
            path3 = os.listdir(os.path.join(path, 'images', i, j))
            for k in path3:
                if k.find('RGB.jpg') != -1:
                    # img = Image.open(os.path.join(path, 'images', i, j, k))
                    # img = img.resize((224, 224))
                    #
                    # #img = np.array(img)
                    # img = np.asarray(img) / 255.0
                    # rgb.append(img)
                    pa = os.path.join(path, 'images', i, j, k)
                    img = image.load_img(pa, target_size=(224, 224))
                    img = image.img_to_array(img)
                    img = img / 255.0
                    rgb.append(img)

参考:https://blog.youkuaiyun.com/qq_41573001/article/details/108368942

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值