Я не могу перечислить содержимое папки, содержащей различные изображения - PullRequest
0 голосов
/ 28 апреля 2020

Я делаю приложение для распознавания изображений с глубоким изучением, но я не могу найти различные изображения, которые существуют в каждой папке, здесь код

train_dir = 'C:/Users/dell/Documents/training_set/training_set'
test_dir = 'C:/Users/dell/Documents/test_set/test_set'

### Séparation des élements "dog" et "cat"

train_dogs = ['C:/Users/dell/Documents/training_set/training_set/{}'.format(i) for i in os.listdir(train_dir) if 'dog' in i] 
train_cats = ['C:/Users/dell/Documents/training_set/training_set/{}'.format(i) for i in os.listdir(train_dir) if 'cat' in i]  

#### On stocke les élements du jeu de test (liste de chemin) dans la variable test_imgs
test_imgs = ['C:/Users/dell/Documents/test_set/test_set/{}'.format(i) for i in os.listdir(test_dir)] 

, когда я выполняю список пуст

train_dogs[1:10]
[]

train_dogs
['C:/Users/dell/Documents/training_set/training_set/dogs']

1 Ответ

0 голосов
/ 29 апреля 2020

сначала образование

os.listdir вернет список файлов / папок в указанном каталоге, он не будет рекурсивно перечислять весь каталог и его подкаталоги

, теперь ответ на ваш задача

есть 2 варианта:

  1. предположим, что мы не знаем точных имен подпапок:
train_dir = 'C:/Users/dell/Documents/training_set/training_set/'
test_dir = 'C:/Users/dell/Documents/test_set/test_set/'

train_folders = [train_dir + i + '/' for i in os.listdir(train_dir)]
train_dogs = [i + j for i in train_folders for j in os.listdir(i) if 'dog' in i] 
train_cats = [i + j for i in train_folders for j in os.listdir(i) if 'cat' in i] 

test_imgs = ['C:/Users/dell/Documents/test_set/test_set/{}'.format(i) for i in os.listdir(test_dir)]
как вы описали, мы знаем имена подкаталогов!
train_dir = 'C:/Users/dell/Documents/training_set/training_set/'
test_dir = 'C:/Users/dell/Documents/test_set/test_set/'

train_dogs = [train_dir + 'dog/' + i for i in os.listdir(train_dir + 'dog')] 
train_cats = [train_dir + 'cats/' + i for i in os.listdir(train_dir + 'cats')] 

test_imgs = ['C:/Users/dell/Documents/test_set/test_set/{}'.format(i) for i in os.listdir(test_dir)] 
...