2015-01-05 94 views
1

我有一個PsychoPy例程,旨在作爲內存對象跨度測試。在一個循環中,軟件會多次顯示一個對象(單個文本字符),然後顯示用戶任務。該軟件會記住字符串,並在稍後要求用戶輸入顯示的字符。這個序列(任務循環之後是字符回憶)本身在一個更大的循環中被呈現幾次。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 =真 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 

稍後例程具有作爲其開始例行

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文件或一些日誌文件,這樣就不會丟失信息。

有沒有辦法做到這一點?

回答

3

當然可以。在你的代碼組件的「結束常規」選項卡中,把這樣的事情:

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

這將增加兩個新的列到您的數據文件,你把任何文字值在引號的列標題。

+1

是的,這正是我所希望的。你已經解決了六個與我描述的問題類似的問題。 – Novak