确定使用h5py创建的HDF5文件是否被压缩

3

我有一个非常简单的问题:

我能否确定使用h5py生成的HDF5文件是否已经压缩(而不必读取其中的数据)?我需要知道这一点,因为我想根据它是否被压缩来改变我的策略。

显然,我找不到答案,但如果已经有人问过了,我很抱歉。

1个回答

2

压缩是以数据集属性的形式处理的。换句话说,有些可能被压缩,有些则不会。在读取数据值时,您无需知道数据集是否已经压缩 - 它会自动处理。

但是,如果您仍然想要这样做,有几种方法可以检查。

  1. HDF5 h5dump 实用程序:h5dump -H -p filename
  2. HDF5 h5ls 实用程序:h5ls -v filename
  3. 一小段 Python/h5py 代码获取数据集的 .compression 属性。

以下是 Python 代码:

with h5py.File('yourfile.h5') as h5f:
     print (h5f['dataset_name'].compression)

天啊,那么简单,我甚至可以直接尝试compression属性而不用搜索。很疯狂的是,简单的谷歌搜索没有任何关于此的结果。无论如何,仅供参考,我需要知道文件是否压缩了,因为我发现如果文件已经压缩,读取数据会减慢任何其他正在运行的线程(特别是GUI线程),而且我需要根据数据是否压缩来更改读取数据的策略。这样就可以了,非常感谢! - Francesco
1
为了以后的参考,请查看h5py文档。它包含有关文件、组和数据集方法和属性的所有细节。h5py文档 数据集参考在这里:h5py数据集参考 - kcw78

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接