首页 > 解决方案 > 如何从 Python 中的特定文件中调用随机图片?

问题描述

我正在设计一个实验。我需要创建 3 个数组并将它们与

 itertools.product(a,b,c)

我是在使用文本而不是图像时做到的。使用图像时,我需要编写图像的整个窗口路径,但我想避免它,因为太多了。

是否有某种代码可以创建一个包含我所有图像的数组(例如,名为“a”的数组),以便我可以将它们与 itertools 结合起来。

预期输出:

a = ("a list that contains all images from file A")
b = ("a list that contains all images from file B")
c = ("stimuliA", "StimuliB")

所以我可以创建这些的完全组合:

itertools.product(a,b,c)

标签: pythonarrays

解决方案


您可以将glob用于此目的,如下所示:

import os
import glob


def get_images(folder_name, extensions=['jpg', 'png', 'jpeg']):
    dir_path = os.getcwd()
    image_files = []
    for extension in extensions:
         image_files.extend(glob.glob("{}\*.{}".format(folder_name, extension))) 
    return list(map(lambda filename: dir_path +"\\"+ filename, image_files))

a = get_images("A") 
b = get_images("B")
c = get_images("C")

我写了一个函数get_images。有两个参数folder_nameextensions(可选参数)

默认情况下,我们将jpg, png, jpeg在指定文件夹中搜索扩展。dir_path包含当前目录路径。glob列出所有具有指定扩展名的文件。

在获得不同扩展名的图像的所有相对路径后,我们将它们全部合并到一个名为image_files.

最后,我们将它们中的每一个与 连接起来,以使用lambda表达式dir_path创建每个图像的绝对路径。


推荐阅读