HDF5文件中单个(连续)数据集的字节偏移量可以使用作为HDF5 library的一部分分发的h5ls tool来确定,但我一直无法确定如何使用Python(具体地说,h5py package)以编程方式完成这项任务.

我找到了R的rhdf5 package,其中包括h5ls function,但据我所知,h5py没有任何类似的东西.我也找到了How can I get raw byte offsets and bytes read from that offset using the HDF5 C API?,但它没有答案,而且也是在询问C而不是Python.

我并不一定要寻找一行解决方案,我只是想找一种使用Python访问这些信息的方法.我也没有硬性规定要用h5py美元.如果有其他方案或解决方案可以做得更好,我会很乐意考虑的.

推荐答案

下面是一个使用低级h5py API的示例..get_offset()方法适用于任何DataSet对象.下面的示例显示了如何通过两种方式获取低级id(和偏移量):1)通过对象引用;2)通过名称引用.

# first create a simple file with 3 datasets
with h5py.File('SO_76068934.h5','w') as h5f:
    data = [float(i) for i in range (10)]
    h5f.create_dataset('ds_1', data=data)
    data = [float(i) for i in range (10,20)]
    h5f.create_dataset('ds_2', data=data)    
    data = [float(i) for i in range (20,30)]
    h5f.create_dataset('ds_3', data=data)
    
# open the file in read mode and get dataset objects, IDs and Offsets
with h5py.File('SO_76068934.h5','r') as h5f:
    # loop over root level dataset names and objects
    for ds_name, ds_obj in h5f.items():  
        # referencing dataset object:
        ds_id = ds_obj.id    # get low level dataset ID from object
        ds_off = ds_id.get_offset()  # Low-level method
        print(f'For: {ds_name}; Offset: {ds_off}')

        # referencing dataset name:
        ds_off = h5f[ds_name].id.get_offset() # get ID and offset in 1 step
        print(f'For: {ds_name}; Offset: {ds_off}\n')

Python相关问答推荐

DataFrame groupby函数从列返回数组而不是值

如何使用pandasDataFrames和scipy高度优化相关性计算

如何检测背景有噪的图像中的正方形

如何找到满足各组口罩条件的第一行?

Godot:需要碰撞的对象的AdditionerBody2D或Area2D以及queue_free?

如何使用Python以编程方式判断和检索Angular网站的动态内容?

使用NeuralProphet绘制置信区间时出错

不允许访问非IPM文件夹

Python逻辑操作作为Pandas中的条件

用渐近模计算含符号的矩阵乘法

考虑到同一天和前2天的前2个数值,如何估算电力时间序列数据中的缺失值?

在不同的帧B中判断帧A中的子字符串,每个帧的大小不同

搜索按钮不工作,Python tkinter

pysnmp—lextudio使用next()和getCmd()生成器导致TypeError:tuple对象不是迭代器''

从旋转的DF查询非NaN值

用两个字符串构建回文

无法在Spyder上的Pandas中将本地CSV转换为数据帧

jsonschema日期格式

如何在Gekko中处理跨矢量优化

使用Scikit的ValueError-了解