繁体   English   中英

PsychoPy:记录用户输入字符串

[英]PsychoPy: Logging User Input Strings

我有一个PsychoPy例程,旨在充当内存对象跨度测试。 在一个循环中,软件呈现一个对象(单个文本字符),然后是多次用户任务。 软件会记住字符串,然后要求用户输入显示的字符。 这个序列(任务循环后跟字符调用)本身在一个更大的循环中呈现了几次。

字符是随机选择的。

我想在PsychoPy生成的CSV文件或某种日志文件(用户输入的字符)中进行记录。 如何在PsychoPy图形界面系统中做到这一点?

用于记录字符序列的代码块是:

开始常规

givenAnswer = ""
returnPressed = False

R_memPrompt.setText("Please enter characters in the order they were presented, then hit 'Return':") 
R_memPrompt.draw()
win.flip()

每个框架

loopTest = True userInput =“”

if returnPressed == False:
    while loopTest == True:
        response = event.waitKeys(keyList=['a','b','c','d','e','f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'return', 'backspace', 'left'])
        if response[0] == 'return':
            loopTest = False
            returnPressed = True
            continueRoutine = False
        elif response[0] == 'backspace':
            userInput = userInput[:-1]
            userInput = userInput.upper()
            R_disp.setText(userInput)
            R_disp.draw()
            win.flip()
        else:
            userInput = userInput + response[0]
            userInput = userInput.upper()
            R_disp.setText(userInput)
            R_disp.draw()
            win.flip()

结束例程

givenAnswer = givenAnswer + userInput

后来的例程就像它的Begin Routine一样

if memorySequence == givenAnswer:  # memorySequence is the prior record of memory characters
    #  do some stuff
else:
    #  do some other stuff

原始(它是一个原型),但每个框架部分的意图只是通过R_disp文本刺激反映字符写入屏幕,同时允许用户退格而不用担心区分大小写。 最终答案最终在givenAnswer中 ,并且稍后与之前构建的memorySequence进行比较。

我想将这些变量的内容, memorySequencegivenAnswer转储到CSV文件或一些日志文件,以便我不会丢失信息。

有没有办法做到这一点?

当然。 在代码组件的“End Routine”选项卡中,输入如下内容:

thisExp.addData("sequence", memorySequence)
thisExp.addData("answer", givenAnswer)

这将为您的数据文件添加两个新列,其中包含您在引号中放置的任何文字值的列标题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM