【发布时间】:2018-02-25 21:33:57
【问题描述】:
我有一个包含许多不同图像 (.jpg) 的文件夹以及一个包含不同图像名称的 csv 文件。 csv 文件的每一行都有不同的图像名称组合。例如,对于 3 名参与者,组合如下所示:
images1 = ['01_2.jpg', '06_2.jpg', '08_1.jpg', '04_2.jpg', '10_1.jpg']
images2 = ['10_1.jpg', '01_2.jpg', '06_2.jpg', '08_1.jpg', '03_1.jpg']
images3 = ['06_2.jpg', '08_1.jpg', '01_2.jpg', '04_2.jpg', '10_1.jpg']
在 csv 文件中,上述列表中的每个元素都属于一列。此外,images1 在第一行,images2 在第二行,images3 在第三行。文件如下所示:
01_2.jpg, 06_2.jpg, 08_1.jpg, 04_2.jpg, 10_1.jpg
10_1.jpg, 01_2.jpg, 06_2.jpg, 08_1.jpg, 03_1.jpg
06_2.jpg, 08_1.jpg, 01_2.jpg, 04_2.jpg, 10_2.jpg
我的问题发生在尝试从 csv 文件中随机选择一行(按连续顺序遍历其每一列)并将其与图像文件夹中的每个 name.jpg 匹配时。由于 csv 文件包含每行中图像的呈现顺序,我希望第 n 行 m 列中的名称与其字符串名称匹配的图像(例如'06_2.jpg')。
如何使用 csv 文件中一行中的每个项目从文件夹中检索图像并呈现它们?到目前为止,我已经完成了以下工作:
from psychopy import core, visual, gui, data, misc, event, logging
from time import strftime
import numpy, random
import os, glob
import string
import csv
# RETRIEVE IMAGES FROM FOLDER
path = "/Users/mdc/Dropbox/UMARM/int/stim/"
paintings = []
for file in os.listdir( path )
if file.lower().endswith(".jpg"):
paintings.append(file)
# READ ITEMS
stim_order = [] # to store some list from csv (random row)
f1 = open('list_stim.csv')
items = csv.reader(f1, delimiter=',', quotechar='"')
for row in items:
stim_order.append(row)
【问题讨论】:
-
请编辑问题以包含来自
list_stim.csv的示例 -
我添加了一个示例,说明文件对于 3 名参与者的外观
-
最好以原始文本格式包含数据,然后人们可以复制/粘贴它。作为图像,您会期望人们输入它来测试您的代码。
-
@MartinEvans 我还没有找到添加文档本身的方法,但我直接复制了链接下的数据以及文件的屏幕截图。
-
我已按照您的指示包含了数据。