Python/操作系统列表目录/正在读取子文件夹

2024-06-28 19:17:26 发布

您现在位置:Python中文网/ 问答频道 /正文

在OSX上使用Python3.5 在'/Users/abs/Desktop/data'中有5个子文件夹,我正在尝试查找所有子文件夹。但是我得到一个错误notdirectoryerror:[Errno 20]不是一个目录:'/Users/abs/Desktop/data/.DS\u Store' 我怎么解决这个问题

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))

Tags: path文件夹dataos错误dirabsusers
3条回答

跳过引发异常的条目:

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

如果深度是固定的,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)

您可以检查数据集是否为目录。在

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))

相关问题 更多 >