2017-08-31 46 views
0

我對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/*/'): 

試圖但是,當我檢查清單中的所有條目是無。

+0

是你說你想把'p'加到'names_path'?如果是這樣,只需在現有循環內添加'names_path.append(p)'。 –

+0

你在哪裏運行你的python腳本?你已經在'Train'嗎? – TerryA

+0

如果您需要提取部分路徑(如目錄名稱),請查看'os.path'模塊:https://docs.python.org/3/library/os.path.html – nyrocron

回答

0

如果file_path IST你的形象,你可以得到的目錄名的路徑:

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

這取決於你從哪裏運行文件,但我認爲你的錯誤是你不需要Train之前的斜線。

變化:

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

要:

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

您的代碼產生空列表,所以for循環從未運行。

相關問題