2017-05-26 90 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))