使用pytables访问hdf5文件中的任意组的方法是什么?

2024-09-30 18:30:10 发布

您现在位置:Python中文网/ 问答频道 /正文

想要使用pytables访问/创建hdf5db文件中的任意组。 该文件具有以下结构:

db
  |_ user_00                  # Group
       |_  subjectTable   # TableObject  
       |_ subject_00       # GroupObject

注册一个新的主题意味着向subjectTable添加一行,并使用subject名称创建一个组 所以我有:

^{pr2}$

正如你从问号上看到的,我不知道如何继续。。。因为组特定于我遇到问题的用户,所以新组应该是h5f.root.[user].subjectName

有办法吗?在

更好的方法是pytables吗?在

为了得到额外的分数,有没有Python式的方法?在

编辑: 这样就可以了,但是我讨厌使用eval()。在

    row_str = 'h5f.root.{}'.format(user)
    where = eval(row_str)
    subjectGroup = h5f.createGroup(where, subjectName)

还有别的办法吗?在


Tags: 文件方法evalrootwherepytablesrowsubject
2条回答

它非常简单,因为createGroup方法接受where参数的路径字符串,您可以完成您想要的:

subjectGroup = h5f.createGroup('/{}'.format(user), subjectName, createparents=True)

createGroup甚至有一个参数(如上所述),用于在父节点不存在的情况下强制创建完整路径。在

如果需要检查父组是否存在,我可能会使用pytables文件对象getNode来计算特定节点的句柄

^{pr2}$
row_str = 'h5f.root.{}'.format(user)
    where = eval(row_str)
    subjectGroup = h5f.createGroup(where, subjectName)

相关问题 更多 >