以下是一些代码...... 每当我得到一个输出文件时,我都会得到一倍的数据。
#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()
答案 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
方法。