有没有办法在python中使用os进入目录并随机选择k个文件,而不必首先使用os.listdir加载所有文件名?

问题描述 投票:0回答:1

我想从数据集中加载 64 张图像。 我的数据集位于 VSCode 内的工作目录中。 当我尝试

os.listdir()
目录内容时,VSCode 崩溃了。

最终目标是创建一个 DataLoader,为训练函数获取一批数据。

从文件夹内随机选取文件是没有问题的,因为它们都是png文件。

python file visual-studio-code computer-vision
1个回答
0
投票

尝试使用

os.scandir
,它应该比
os.listdir
更有效率。

import os
import random

output_dir = 'data/images'

num_images = 64

entries = os.scandir(output_dir)
filenames = [entry.name for entry in entries if entry.is_file()] 

indices = random.sample(range(len(filenames)), k=num_images)
for i in indices:
  filename = filenames[i]
  img_path = os.path.join(output_dir, filename)
  # process the image
© www.soinside.com 2019 - 2024. All rights reserved.