如何从 psychopy 的 iohub 动态重命名 hdf5 文件

How to dynamically rename the hdf5 file from psychopy's iohub

我正在使用 Psychopy 1.82.01 Coder 及其 iohub 功能(在 Ubuntu 14.04 LTS 上)。它正在工作,但我想知道是否有一种方法可以动态重命名它在实验期间生成的 hdf5 文件(这样到最后,我知道它属于哪个参与者,两个参与者将获得两个文件而不会覆盖其中一个文件) . 在我看来,文件名是在这个文件中确定的:https://github.com/psychopy/psychopy/blob/df68d434973817f92e5df78786da313b35322ae8/psychopy/iohub/default_config.yaml 但是有没有办法动态改变它?

如果您想为每个实验创建不同的 hdf5 文件 运行,则选项取决于您启动 ioHub 进程的方式。假设您正在使用 psychopy.iohub.launchHubServer() 函数启动 ioHub,那么您可以将 'experiment_code' kwarg 传递给该函数,它将用作 hdf5 文件名。

例如,如果您使用以下代码创建了一个脚本并且运行它:

import psychopy.iohub as iohub

io = iohub.launchHubServer(experiment_code="exp_sess_1")

# your experiment code here ....
# ...

io.quit()

将在与脚本文件相同的文件夹中创建名为 'exp_sess_1.hdf5' 的 ioHub hdf5 文件。

附带说明一下,您不必将每个实验会话数据保存到单独的 hdf5 文件中。 ioHub hdf5 文件结构旨在将多个参与者/会话数据保存在一个文件中。每次实验都是运行,需要一个唯一的session code,每个运行的数据保存在hdf5文件中,session id与session code相关联