匹配要在csv fi中列出的图像

2024-05-10 06:19:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文件夹,里面有许多不同的图像(.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在第3行。文件如下所示:

list_stim.csv

^{pr2}$

我的问题发生在尝试从csv文件中随机选择一行(按连续顺序遍历其每一列),并将其与每个列匹配时姓名.jpg从images文件夹。由于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)

Tags: 文件csvfrom图像import文件夹名称list
1条回答
网友
1楼 · 发布于 2024-05-10 06:19:22

要从CSV文件中获取随机行,可以使用以下方法:

import csv
import random

with open('list_stim.csv') as f_input:
    csv_input = csv.reader(f_input)
    image_sets = list(csv_input)
    image_set = random.choice(image_sets)

    for image in image_set:
        print image

这会将整个CSV文件读入名为image_sets的行列表中。然后使用Python的random.choice()函数选择一个随机行。然后它使用一个循环来显示随机行中的每个图像。在

因此,一个可能的随机输出是:

^{pr2}$

然后,您可以压缩此代码以获得相同的结果:

^{3}$

相关问题 更多 >