【发布时间】:2019-03-04 10:06:47
【问题描述】:
我想遍历一批文件,以便一次获取每个子目录的 32 张图像(由于内存,我无法加载所有图像)例如加载每个目录的 img 1-32 使用它们然后加载img 33-64 然后 65-96 等等
我的目录:
Rootdir
- dir1
- img 1
- img 2
- img...
- dir2
- img 5000001
- img 5000002
- img...
- dir3
- img 10000001
- img 10000002
- img...
所以我需要在第一个循环中加载 img1,2,..,32, 5000001,...5000032, 1000001,...10000032 然后是 img33,34,..,64, 5000033,...5000064 , 1000033,...10000064 在第二个循环中
有没有办法正确地做到这一点?
我正在尝试使用 os.walk,它允许我循环遍历我的目录,但我不知道如何使这个循环适应我所需的 32 个批次?
for dirName, subdirList, fileList in os.walk(rootdir):
print('Found directory: %s' % dirName)
for fname in sorted(fileList):
img_path = os.path.join(dirName, fname)
try:
img = load_img(img_path, target_size=None)
imgs.append(img)
except Exception as e:
print(str(e), fname, i)
#do something on imgs
编辑
你所有的评论都会给我这样的东西:
dir1/img1.jpg 到 dir1/img32.jpg 然后 dir1/img33.jpg 到 dir1/img64.jpg 然后 ...
然后 dir2/img1.jpg 到 dir1/img32.jpg 然后 dir2/img33.jpg 到 dir2/img64.jpg 然后 ...
然后 dir3/img1.jpg 到 dir3/img32.jpg 然后 dir3/img33.jpg 到 dir3/img64.jpg :(
我想要实现的是:
dir1 numero 1 到 32 的文件 + dir2 numero 1 到 32 的文件 + dir3 numero 1 到 32 的文件然后
dir1 numero 33 到 64 的文件 + dir2 numero 33 到 64 的文件 + dir3 numero 33 到 64 的文件在同一个循环中
【问题讨论】:
-
os.walk 允许我循环遍历我的目录是的,这就是我正在使用的,但我不知道如何循环遍历目录中的每个 32 个文件