Я новичок в python и программировании в целом, так что это, вероятно, глупый вопрос.
В настоящее время я готовлю психологический эксперимент с использованием автономной версии PsychoPy v1.90.2, python 2.7, версии кодера, основанной как на существующем сценарии, так и на учебнике от коллеги. Он отлично работает на моем компьютере (Mac) и на компьютере с Windows 10, но на компьютере с Windows7 не сохраняет выходные данные (то есть ответы участника) в файл CSV. Создается пустой файл без какой-либо спецификации файла, но с правильным именем файла и в правильном месте.
- Я могу правильно импортировать базовый CSV-файл для создания стимула
- если я включу print df, я вижу кадр данных в консоли, поэтому данные существуют где-то, по крайней мере временно
- Моя система (Mac) немецкая, но на компьютерах с Windows 10 и 7 установлен французский
- Нет сообщения об ошибке.
- Я успешно провел этот эксперимент на (бельгийском) французском Mac раньше.
</p>
from psychopy import visual, core, event, gui, info, data
import pandas as pd
import numpy as np
import os
import random
import sys
import time
GUI = gui.Dlg(title = "example")
GUI.addField('participant:')
GUI.show()
if GUI.OK:
metadata = GUI.data
else:
sys.exit('participant cancelled')
w = visual.Window([1000, 600], color='black', units='pix')
df = pd.DataFrame([[1, 2], [5, 3], [4, 6]], columns=['stim_a', 'stim_b'])
df['participant'] = int(metadata[0])
df['ans'] = ''
df = df.iloc[random.sample(df.index, len(df))]
df.index = range(len(df))
output_df = "S_" + str(df.participant) + "_df" + "_" + time.strftime("%Y-%m:%d_%Hh%M") + ".csv"
for j in range(df.shape[0]):
event.clearEvents()
stim_a = visual.TextStim(w, df.stim_a[j])
stim_a.draw()
w.flip()
resp = event.waitKeys()
df.ans[j] = resp
print df
df.to_csv(output_df, index = False, header = True, sep = ',', encoding = 'utf-8')
Что должно быть в конце: файл csv, содержащий всю информацию, изначально содержащуюся в df, плюс столбец «member», содержащий номер участника, и столбец «ans», содержащий нажатия клавиш, выполняемые участником.
Что я пробовал:
- разные версии психопии, кроме той, что использует питон 3
- Я подозревал, что проблема кодирования b / c различных раскладок клавиатуры, поэтому я изменил это, но без изменений (и не было проблемы на бельгийских французских компьютерах)
- Предлагаемые здесь решения: Изменить кодировку Python по умолчанию?
- В именах файлов нет специальных символов, и не во всех прочитанных CSV-файлах, но все они не сохраняются.
- использованные права администратора на компьютере
Я знаю, что есть лучший способ сохранить данные, чем "чистые" панды, с помощью эксперимента Хендлера, но, поскольку он работал раньше, и мои знания до сих пор ограничены тем, как мой коллега работает с психопатией, я сохранил этот метод. У меня были другие проблемы с совместимостью, которые мне удалось решить, и я боюсь, что из-за нехватки времени, в которой я сейчас нахожусь, это затонувшая ситуация ...
РЕДАКТИРОВАТЬ : рабочий пример теперь должен работать, извините за это!