psychopy网站没有为输出文件加倍数据提供修复

时间:2014-12-11 19:56:49

标签: file-io psychopy

以下是一些代码...... 每当我得到一个输出文件时,我都会得到一倍的数据。

       #For each record in keypress, a line is created in the file
        keyPress = []
        keyPress.append(event.waitKeys(keyList=['s','d'],timeStamped=clock))
        for key in keyPress:
            for l, t in key:
                f.write(str(images[index]) + "\t iteration \t" + str(k + 1) + "\t" + l + "\t" + str(t)+"\n")
f.close()

1 个答案:

答案 0 :(得分:1)

这里有一些不清楚的东西,我无法重现它。但无论如何,我会给出答案。首先,event.waitKeys只返回一个响应,因此实际上没有必要循环它们。所以我只是做

l, t = event.waitKeys(keyList=['s','d'],timeStamped=clock)[0]

......这更好。因此,完全可重复的解决方案就是:

# Set things up
from psychopy import visual, event, core
win = visual.Window()
clock = core.Clock()
f = open('log.tsv', 'a')

# Record responses for a few trials and save
for trial in range(5):
    l, t = event.waitKeys(keyList=['s','d'], timeStamped=clock)[0]  # [0] extracts the first (and only) element, i.e. the (key, rt) tuple which is then unpacked into l and t.
    f.write('trial' + trial + '\tkey' + l + "\tRT" + str(t) + "\n")
f.close()

不要像这样手动创建日志文件,而应考虑使用csv模块或心理模型自己的data.TrialHandler。通常使用dict表示试验并将响应与每个试验的属性一起保存是很好的。 csv模块有DictWriter方法。