python - 如何存储所有 python 按键 RT 而不仅仅是第一个?
问题描述
我正在使用PsychoPy Coder(它使用 python 代码,对于那些不熟悉的人)编写行为数据收集任务。任务很简单 - 参与者循环观看 5 个视频,按顺序播放,当他们认为视频中的一个事件结束而另一个事件开始时,要求他们按空格键。我希望我的输出 .csv 包含 5 列 - 每个视频一个列,每列都有一个 RT 列表,用于在该视频期间按下的所有键(有效地传达每个视频期间该参与者划分事件的时间)。
我已经让循环开始工作并有时间重新启动每个视频,以便 RT 是特定于视频而不是特定于实验的,并且我已经将它存储在每个单独的列中按下的第一个键的 RT视频,但我希望它存储所有按下的键的 RT。
我假设我需要创建一个列表并将每个 RT 附加到该列表以稍后保存在 .csv 中,但我无法让它工作。
这是仅用于视频演示和响应密钥集合的代码:
n = 0
while n != 6: #will play the 5 video clips
timer.reset()
video_selected = project_dir+'/'+video_dir+'/'+video_clip[n] #selects each video clip
videopath = str(video_selected) #set path for video
if not os.path.exists(videopath):
raise RuntimeError("Video File could not be found:" + videopath)
#play the video using VLCMovieStim
mov = visual.VlcMovieStim(win, videopath,
size=None, # set as `None` to use the native video size
pos=[0, 0],
flipVert=False,
flipHoriz=False,
loop=False, # replay the video when it reaches the end
autoStart=True) # start the video automatically when first drawn
#while the video plays...
while not mov.isFinished:
keys = kb.getKeys(['space', 'escape']) #define allowed keys
for thisKey in keys:
RT = timer.getTime()
if thisKey=='escape': #if escape selected, quit the program
mov.stop()
core.quit()
else:
thisExp.addData('RTvid'+str(n+1), RT) #if space selected, add response time to the csv
# draw elements
mov.draw() #bring the movie onto the screen
win.flip()
n = n + 1
我确信这非常容易解决,但我(显然)是一名编码爱好者。您能提供的任何帮助将不胜感激!
仅供参考,.addData函数是 PsychoPy 中 ExperimentHandler 的一部分,并将数据作为('列名',要添加的变量)添加到数据 .csv 中。
这是我当前输出的屏幕截图: 当前输出
这就是我想要的样子: 期望的输出
最后一件事是每个视频都有 3 到 5 分钟的时长,运行这个程序的计算量似乎非常大,有时它会崩溃。任何有关如何调解的建议将不胜感激。
解决方案
推荐阅读
- mysql - 解决 mysql 数据库中的 sequelize 布尔值
- python - 为什么我的代码没有返回正确的值?
- django - 在提交表单时如何在来自 ajax 的视图中读取文件上传控制数据
- python-3.x - 你如何检查熊猫数据框中的日期时间列是否属于每一行的相同日期?
- java - 如何显示 JPanel 的网格
- c# - 分配的对象值在分配给另一个对象变量时发生了变化
- c++ - 如何使用 opencv 静态库编译 opencv 应用程序?
- .htaccess - 如何通过单个 301 重定向强制重定向到 Https + Non-WWW + 斜杠?
- reactjs - 如何使用 React js 存储和显示 html 元素
- docker - 在嵌入式播放表单上加载busybox图像后,docker运行错误(操作不支持)