Python:在列表中存储图像和关联的文件夹名称
问题描述:
我对Python很新,我想知道是否有人可以帮我解决这个问题。Python:在列表中存储图像和关联的文件夹名称
我有每个子文件夹中包含它相关image.Such文件夹“火车”与子文件夹“球”,“椅子”,“杯具”,“袋”为:
project/Train/ball/01.jpg
project/Train/chair/02.jpg
project/Train/cup/03.jpg
project/Train/bag/04.jpg
我写了下面的代码从火车
names_path = []
training_paths = []
for name in glob.glob('/Train/**/*.jpg'):
img = cv2.imread(name)
training_paths.append(name)
读取图像对于names_path = []
我想储存子文件夹的名称(袋,聊天,杯,球)当前图像的。因此,如果在循环的第一图像属于球,保存图像路径training_paths
和“球”到names_path
我已经用另一个循环,如
for clas in glob.glob('/Train/*/'):
试图但是,当我检查清单中的所有条目是无。
答
如果file_path
IST你的形象,你可以得到的目录名的路径:
from os import path
file_path = "project/Train/ball/01.jpg"
dir_name = path.basename(path.dirname(file_path)) # "ball"
-
dirname()
提取目录 -
basename()
的路径中提取的目录路径的最后一部分 - 另见:https://docs.python.org/3/library/os.path.html
答
这取决于你从哪里运行文件,但我认为你的错误是你不需要Train
之前的斜线。
变化:
glob.glob('/Train/**/*.jpg')
要:
glob.glob('Train/**/*.jpg')
您的代码产生空列表,所以for循环从未运行。
是你说你想把'p'加到'names_path'?如果是这样,只需在现有循环内添加'names_path.append(p)'。 –
你在哪里运行你的python脚本?你已经在'Train'吗? – TerryA
如果您需要提取部分路径(如目录名称),请查看'os.path'模块:https://docs.python.org/3/library/os.path.html – nyrocron