列出 Kaggle 数据集中多种格式的图像路径

List image paths of multiple formats in a Kaggle Dataset

如何在图片路径相似的Kaggle数据集中形成多种格式的图片列表? 在 Kaggle 工作,我想将图像路径转换为列表,以便我可以存储和执行操作,但找不到合适的图像遍历 Algo 来给我所需的列表结果。

图像的树是:

|-data
   |-images
        |-ID0
          |--- img4tgh4r3.jpg
          |--- img324633.png
          |
          .
          .
        |-ID1
        .
        .

我试过使用 ls -a 但是你如何转换这个结构并将其保存为数据类型以重用它。

import os
  

path = "/"
dir_list = os.listdir(path)
  
print("Files and directories in '", path, "' :") 
  
# print the list
print(dir_list)

这只列出了目录,但没有列出所有图像类型。

这可以使用 Python 中的 osglob 模块来完成。我建议使用 glob,因为它可以在各种情况下促进更多功能 w.r.t 文件名。

示例代码:


import glob
from tqdm import tdqm

# The required file extensions
fetch_formats = ['png', 'jpg', 'jpeg']

# Declare an empty list for storing the file names
img_list = list()

# State the directory of interest
path = working_dir + "images/**/*."

# Fetch each type of file from the given directory
for ff in tqdm(fetch_formats, desc="Fetching the filenames"):
    img_list.extend(list(glob.glob(path+ff)))

print(f"\nTotal number of images: {len(img_list)}")

注意:

  • 使用tqdm是为了生成进度条,可以避免
  • *.png* would imply any filename ending with .png`
  • dir\**\*.png 表示 dir 中的任何 sub-directory,其中包含名称以 .png
  • 结尾的文件

查看 official documentation 了解更多信息