python-3.x 如何检查多个目录是否包含.png?

quhf5bfb  于 2023-05-08  发布在  Python
关注(0)|答案(1)|浏览(166)

我试图运行一个代码,但我会收到一个错误,检查文件夹中是否包含.png文件。问题是我不知道如何检查它的几个子文件夹。
这是我的目录

并且每个都包含一些png文件

我运行了以下内容:

data_dir = '/content/drive/MyDrive/Safe/training'
img = []

for filename in os.listdir(os.path.join(data_dir, 'training', 'image_03')):
    if filename.endswith('.png'):
        img_path = os.path.join(data_dir, 'training', 'image_03', filename)
        with Image.open(img_path) as image:
            img.append(np.array(image))



# check if images are loaded properly
if not img:
    raise ValueError("No images found in the directory")

它总是引发ValueError: No images found in the directory,因为文件名是文件夹名称00000001,而不是它们包含的图像。如何改变这一点,更进一步检查每个文件?

rryofs0p

rryofs0p1#

你可以使用os.walk()递归地浏览文件,如下所示:

import os

img = []

for root, dirs, files in os.walk('./'):
    for file in files:
        if file.endswith(".png"):
            file_path = os.path.join(root, file)

            print(file_path)
            
            with Image.open(img_path) as image:
                img.append(np.array(image))
                
                
if not img:
    raise ValueError("No images found in the directory")

相关问题