python - 存储文件夹和内部文件夹的路径
问题描述
我在尝试从文件夹内的子文件夹中读取时遇到了困难。我想要做的是:我有我的路径“C:\Dataset”,其中有两个文件夹和两个文件夹,我的人名有图片,例如:“C:\Dataset\Drunk\JohnDoe\Pic1” , "C:\Dataset\Sober\JaneDoe\Pic1"。我希望能够读取每张图片并将它们存储在路径变量中。
目前,到目前为止,我得到的基本上是图像,只要它们仅在 Drunk 和 Sober 中,例如:'C:\Dataset\Drunk\Pic1',以及我用来做的代码这是:
DATADIR = "C:\Dataset"
CATEGORIES = ["Positive", "Negative"]
for category in CATEGORIES:
path = os.path.join(DATADIR, category)
for img in os.listdir(path):
img_array = cv2.imread(os.path.join(path,img), cv2.IMREAD_GRAYSCALE)
break
break
基本上,我想做的是,当我在 Drunk 文件夹中进行迭代时,它也会在内部文件夹中进行迭代,读取 C:\Dataset\Drunk\JohnDoe\nthPic、C:\Dataset\Drunk 中图片的路径\JoeDoe\nthPic,C:\Dataset\Drunk and Sober \nthJoe\nthPic C:\Dataset\Drunk\JamesDoe\nthPic。因此,当我执行 cv2.imread 时,它会抓取整个文件夹映射
这基本上是我的目标。
解决方案
您还需要一个嵌套:它将所有图像保存在字典images
中,键是完整路径。
DATADIR = "C:\Dataset"
CATEGORIES = ["Drunk", "Sober"]
images = {}
for category in CATEGORIES:
path = os.path.join(DATADIR, category)
for person in os.listdir(path):
personfolder = os.path.join(path, person):
for imgname in os.listdir(personfolder):
fullpath = os.path.join(personfolder, imgname)
images[fullpath] = cv2.imread(fullpath, cv2.IMREAD_GRAYSCALE)
推荐阅读
- sql - Cannot resolve column from input columns after second join
- twilio - Line Feed in Autopilot Actions JSON
- php - php-fpm 由 2 个用户运行导致权限问题
- css - Bootstrap 4 如何重叠响应堆叠的两个 Div
- git - How do i get the target branch of a commit using git log command
- python-requests - wrap_socket() got an unexpected keyword argument '_context' and deserialize(error)
- powershell - Powershell在字符串中的特定字符后添加代码
- c# - Azure 服务总线的共享访问策略编程创建
- css - 如何在 Aurelia 中动态更改项目主题
- bash - 计算自 $STARDATE 和当前日期以来经过的时间