Как проверить файлы в папке и после проверки файлов в подпапках - PullRequest
0 голосов
/ 26 октября 2018

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

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

Раньше я проверял вложенные папки на наличие фотофайлов, но если у меня есть 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   

Как добавить jpegs из корня и jpegs из подпапок в список?

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 jpegs, чем добавлять их. Но какова должна быть логика для подпапок? Теперь он пытается использовать имя jpeg_file в качестве подпапки, поэтому появляется сообщение об ошибке

1 Ответ

0 голосов
/ 26 октября 2018

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

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