【问题标题】:Read images of multiple datatypes from multiple subdirectories从多个子目录读取多种数据类型的图像
【发布时间】:2019-08-28 07:10:06
【问题描述】:

我想使用 glob 函数从 python 的多个子目录中读取多个数据类型的图像

我已成功从子目录中读取 JPG 类型的图像。想知道如何读取多种数据类型的图像。以下是我到目前为止尝试过的代码

###########READ IMAGES OF MULTIPLE DATATYPES from a SINGLE Folder######

    import os
    import glob

    files = []
    for ext in ('*.jpg', '*.jpeg'):
       files.extend(glob(join("C:\\Python35\\target_non_target\\test_images", ext)))
    count=0   

    for i in range(len(files)):
        image=cv2.imread(files[i])
        print(image)

###### READ MULTIPLE JPG IMAGS FROM MULTIPLE SUBDIRECTORIES#########

import os
import glob
from glob import glob

folders = glob("C:\\Python36\\videos\\videos_new\\*")

img_list = []
for folder in folders:
    for f in glob(folder+"/*.jpg"):
        img_list.append(f)

for i in range(len(img_list)):
    print(img_list[i])

这两个代码都运行良好,但我很困惑如何包含从多个子目录读取多个数据类型图像的行。我有一个包含多个子目录的目录,其中有多种数据类型的图像,如 JPG、PNG、JPEG 等。我想阅读所有这些图像并在我的代码中使用它们

【问题讨论】:

    标签: python directory glob subdirectory


    【解决方案1】:

    试试这个:

    import glob
    my_root = r'C:\Python36\videos\videos_new'
    my_exts = ['*.jpg', 'jpeg', '*.png']
    files = [glob.glob(my_root + '/**/'+ x, recursive=True) for x in my_exts]  
    

    查看this 了解递归搜索文件夹的各种方法。

    另外一个注释,而不是这个:

    for i in range(len(img_list)):  
        print(img_list[i])
    

    使用 python 为简单、可读的 for 循环执行此操作:

    for img in img_list:
        print(img)
    

    【讨论】:

    • 很抱歉回复晚了。您的代码建议工作正常。感谢您的帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    • 2020-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多