LFW数据集根据名称将图像放在不同的文件夹中。我想读取所有图像并将其移至一个文件夹。我使用带有os.listdir()
函数的for循环来读取文件,但它仅返回LFW数据集中第一个文件夹中的图像。
'''code is showing below the line'''
import os
from os.path import join as pjoin
from skimage import io
img_dir = 'new path'
def load_data(data_dir): #dataset is the originalPath
count = 0
for guys in os.listdir(data_dir):
print(guys)
person_dir = pjoin(data_dir, guys)
for i in os.listdir(person_dir):
image_dir = pjoin(person_dir, i)
img22 = io.imread(image_dir, mode='RGB')
print(image_dir)
io.imsave(pjoin(img_dir, i), img22)
count = count+1
print(person_dir)
print(count)
return count
sourcepath = 'originalPath'
load_data(sourcepath)
预期结果是将LFW数据集的所有文件夹中的所有图像读取到新路径(不在任何文件夹中,仅图像)。 代码运行没有错误,但是计数实际上返回了“ 1”,我可以在新路径中看到只有1张图像,它位于LFW数据集的第一个文件夹中。
答案 0 :(得分:0)
一个明显的问题是您的return语句缩进:
'''code is showing below the line'''
import os
from os.path import join as pjoin
from skimage import io
img_dir = 'new path'
def load_data(data_dir): #dataset is the originalPath
count = 0
for guys in os.listdir(data_dir):
print(guys)
person_dir = pjoin(data_dir, guys)
for i in os.listdir(person_dir):
image_dir = pjoin(person_dir, i)
img22 = io.imread(image_dir, mode='RGB')
print(image_dir)
io.imsave(pjoin(img_dir, i), img22)
count = count+1
print(person_dir)
print(count)
return count
sourcepath = 'originalPath'
load_data(sourcepath)
您可以检查并确认它正在使用的第一个文件夹(家伙)是否包含多个图像。