2017-05-26 79 views
0

在OSX上使用python 3.5 '/ Users/abs/Desktop/data'中有5個子文件夾,我試圖查看所有子文件夾。但我得到了一個錯誤NotADirectoryError:[錯誤20]這不是目錄:「/Users/abs/Desktop/data/.DS_Store」 我該如何解決這個問題python/os.listdir /讀取subfodlers

data_path = '/Users/abs/Desktop/data' 
data_dir_list = os.listdir(data_path) 

for dataset in data_dir_list: 
    img_list=os.listdir(data_path+'/'+dataset) 
    print ('Loaded the images of dataset-'+'{}\n'.format(dataset)) 

回答

0

跳過這引發異常的條目:

import os 
data_path = '/Users/abs/Desktop/data' 
data_dir_list = os.listdir(data_path) 

for dataset in data_dir_list: 
    try: 
     img_list=os.listdir(data_path+'/'+dataset) 
     print ('Loaded the images of dataset-'+'{}\n'.format(dataset)) 
    except NotADirectoryError: 
     pass 
0

如果深度是固定的,glob是一個好主意:

import glob,os.path 
fd3 = glob.glob('/Users/abs/Desktop/data/*/*/*') 
dd3 = filter(lambda f: os.path.isdir(f), fd3) 
for f in dd3: 
    print(f) 
0

您可以檢查數據集是一個目錄。

data_path = '/Users/abs/Desktop/data' 
data_dir_list = os.listdir(data_path) 

for dataset in data_dir_list: 
    if os.path.isdir(os.path.join(data_path, dataset): # <-- if it is a directory 
     img_list=os.listdir(data_path+'/'+dataset) 
     print ('Loaded the images of dataset-'+'{}\n'.format(dataset))