Для этого вы можете использовать библиотеку treeHandler
. Вы можете установить его, используя pip install treeHandler
from treeHandler import treeHandler
import os
import cv2
inputFolder='SampleData'
### initialising treeHandler object
th=treeHandler()
### calling getFiles function to get all jpg files, you can add more extensions like ['jpg','png','bmp'] if required
fileTuple=th.getFiles(inputFolder,['jpg'])
Вот как выглядит образец fileTuple:
[('image01.jpg', 'sampleData'), ('image02.jpg', 'sampleData'), ('image03.jpg', 'sampleData'), ('image04.jpg', 'sampleData'), ('image11.jpg', 'sampleData/folder1'), ('image12.jpg', 'sampleData/folder1'), ('image111.jpg', 'sampleData/folder1/folder11'), ('image112.jpg', 'sampleData/folder1/folder11'), ('image1111.jpg', 'sampleData/folder1/folder11/folder111'), ('image1112.jpg', 'sampleData/folder1/folder11/folder111'), ('image11111.jpg', 'sampleData/folder1/folder11/folder111/folder1111')....]
Я написал блог об обработке большого количества файлов и их обработке
https://medium.com/@sreekiranar / directory-and-file-handle-in- python -for-real-world-projects-9bc8baf6ba89
Вы можете сослаться на это, чтобы получить честная идея о том, как бороться с получением всех файлов из папок и подпапок.