pytorch在读取数据时一次性生成csv文件(多栏目)

pytorch在读取数据时一次性生成csv文件(多栏目)

读取图片数据时,通常会遇到数据写入到csv文件,而数据写入文件时,写入csv文件需要导入pandas库

首先设置一个空列表用来放置每次读取的图片路径,通过os.listdir("路径名")可以获取到该文件下面所有路径,如果是涉及到图片分类的问题,比如说是10个类别的数据,只需要在循环中设置一个空列表。

如何设置对的正确的数组
枚举设置多维列表

info_array  = [[],[],[]]

使用列表生成式生成多维列表

info_array  = [[] for i in range(N)]

使用乘法生成列表

info_array  = [[]] * N

三种方式生成的结果打印出来是一致的
但是第三种生成方式,使用[i]append函数的时候,是每一个[]都会append上去函数,我们希望每一个[]都是独立存在的。
前面两种方式生成列表,使用[i]append函数的时候,是第i[]会append上去函数,我们希望每一个[]都是独立存在的。

附上读取数据的代码:

import os
import torchvision
from torchvision import transforms
from torch.utils.data import DataLoader,Dataset
from torchvision.io import read_image
import torch
import torchvision
import numpy as np
from PIL import Image
import pandas as pd

#设置csv文件的列名
col = ['img1','img2','GT']
# col = ['img1']

#使用os.listdir()遍历整个文件夹

dataset_dir = "data/train"
N = len(os.listdir(dataset_dir + '/' + 'img1' + '/'))
#存储内容信息
info_array  = [[] for i in range(N)]#三维数组,分别是img1,img2,GT

#读取文件夹下面的多个类别
classes = os.listdir(dataset_dir)
# print("image classes length:",len(classes))

for kindname in classes:
    #获取每个类别文件夹的路径
    index = 0
    if(kindname.startswith('.')):
        print("pass .DStore file")
    else:
        classpath = dataset_dir + '/' + kindname
        for filename in os.listdir(classpath):
            #读取每一个类的文件夹中的每一个图片文件的路径信息
            filepath = classpath + '/' + filename
            #将label的字符串标签转化为数字标签
            # label = classes.index(kindname)
            # print(index,end=' ')
            info_array[index].append(filepath)
            # print()
            index += 1
    # print()
    # print(np.array(info_array[1]))
# print(np.array(info_array).shape)
# print(np.array(info_array))
df = pd.DataFrame(info_array,columns=col)
df.to_csv('./dataset.csv',encoding='UTF-8',index=None)

在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

henu-于笨笨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值