python - 如何从 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)
解决方案
您可以将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_name
和extensions
(可选参数)
默认情况下,我们将jpg, png, jpeg
在指定文件夹中搜索扩展。dir_path
包含当前目录路径。glob
列出所有具有指定扩展名的文件。
在获得不同扩展名的图像的所有相对路径后,我们将它们全部合并到一个名为image_files
.
最后,我们将它们中的每一个与 连接起来,以使用lambda表达式dir_path
创建每个图像的绝对路径。
推荐阅读
- python - Flask 应用程序在本地运行良好,但在 Heroku 上部署时显示错误
- javascript - Store Multiple Emails in Array - Html Input Element
- flutter - 运行`flutter run --release`时出错
- go - 获取缺少的包 golang.org/x/text/encoding/unicode 导入周期
- google-apps-script - 当特定单元格 =“完成”时添加时间戳
- regex - 如何修复要接收替换的数据的大小写在字符串中搜索指定值(appleJam)或正则表达式
- html - 我该怎么做拉伸到底是做什么的?
- database - 如何从代理表中删除记录(毒液解决方案)?
- python - 如何在 matplotlib 中更新 y 轴
- connection - VMWare:与远程计算机的连接失败