Python:将图像和关联的文件夹名称存储在列表中

Python: store image and associated folder name in a list

我是 Python 的新手,我想知道是否有人可以帮助我解决这个问题。

我有一个包含子文件夹 "ball"、"chair"、"cup"、"bag" 的文件夹 "Train",每个子文件夹都包含相关的 image.Such 为:

project/Train/ball/01.jpg
project/Train/chair/02.jpg
project/Train/cup/03.jpg
project/Train/bag/04.jpg

我写了下面的代码来从 Train 中读取图像

names_path = []
training_paths = []

for name in glob.glob('/Train/**/*.jpg'):
    img = cv2.imread(name)
    training_paths.append(name)

对于names_path = []我想存储当前图像的子文件夹(bag、chat、cup、ball)的名称。因此,如果循环中的第一张图像属于球,则将图像路径保存到 training_paths 并将 "ball" 保存到 names_path

我试过使用另一个循环,例如

for clas in glob.glob('/Train/*/'):

但是当我查看列表时,所有条目都是 None。

这取决于您实际上 运行 文件的来源,但我认为您的错误是您不需要 Train.

之前的斜杠

变化:

glob.glob('/Train/**/*.jpg')

收件人:

glob.glob('Train/**/*.jpg')

您的代码正在生成一个空列表,因此 for 循环永远不会运行。

如果 file_path 是您的图像路径,您可以通过以下方式获取目录名称:

from os import path
file_path = "project/Train/ball/01.jpg"
dir_name = path.basename(path.dirname(file_path))  # "ball"