Как проверять файлы в папке и после проверять файлы в подпапках

У меня такая структура:

Root_folder:
    |
    |__sub_folder1
    |
    |__sub_folder2
    |
    |__sub_folder3
    |
    |__Photo_file.jpeg

Раньше я проверял sub_folders на наличие photo_files, но если у меня есть jpeg_file в корне, я получаю ошибку.

def get_photos(path):
    photos = []
    photos_path = []
    for folders in os.listdir(path):
        for jpeg in os.listdir(path + folders):
            photos_path.append(path + folders + '/' + jpeg)
            photos.append(jpeg)
    return photos,  photos_path   

Как добавить в список JPEG из корневого каталога и JPEG из вложенных папок?

def get_photos(path):
    photos = []
    photos_path = []

    for folders in os.listdir(path):
        if re.match('.*\.jpeg|.*\.jpg|.*\.png', folders):
            photos_path.append(path + folders)
            photos.append(folders)
    for folders in os.listdir(path):
        for jpeg in os.listdir(path + folders):
            photos_path.append(path + folders + '/' + jpeg)
            photos.append(jpeg)

    return photos,  photos_path 

Это насколько я понял, проверяю, есть ли у root файлы jpeg, а затем добавляю их. Но какова должна быть логика для вложенных папок? Прямо сейчас он пытается использовать имя jpeg_file в качестве подпапки, поэтому появляется ошибка

0
0
65
1

Ответы 1

Это работает для меня:

def get_photos(path):

    photos = []
    photos_path = []

    for folders in os.listdir(path):
        if re.match('.*\.jpeg|.*\.jpg|.*\.png', folders):
            photos_path.append(path + folders)
            photos.append(folders)
        else:
            for jpeg in os.listdir(path + folders):
                photos_path.append(path + folders + '/' + jpeg)
                photos.append(jpeg)

    return photos,  photos_path 

Другие вопросы по теме