判断使用 h5py 创建的 HDF5 文件是不是被压缩
Posted
技术标签:
【中文标题】判断使用 h5py 创建的 HDF5 文件是不是被压缩【英文标题】:Determine if a HDF5 file created with h5py is compressed or not判断使用 h5py 创建的 HDF5 文件是否被压缩 【发布时间】:2022-01-09 03:23:01 【问题描述】:我有一个相当简单的问题:
我能否确定使用h5py
生成的 HDF5 文件是否被压缩(不读取其中的数据)?我需要知道它,因为我想根据它是否被压缩来改变我的策略。
显然,我找不到答案,但如果有人问过,我很抱歉。
【问题讨论】:
【参考方案1】:压缩作为数据集属性处理。换句话说,有些可能会被压缩,有些可能不会。读取数据值时不需要知道数据集是否被压缩——它是自动处理的。
但是,如果您仍然想这样做,有几种方法可以检查。
-
HDF5 h5dump 实用程序:
h5dump -H -p filename
HDF5 h5ls 实用程序:h5ls -v filename
少量 Python/h5py 代码获取数据集的.compression
属性。
Python 代码如下:
with h5py.File('yourfile.h5') as h5f:
print (h5f['dataset_name'].compression)
【讨论】:
天哪,这太容易了,我什至不用搜索就可以尝试compression
属性。疯狂的是,一个简单的谷歌搜索没有提出任何关于此的结果。无论如何,只是为了上下文,我需要知道文件是否被压缩,因为我发现如果文件有压缩,数据的读取会减慢我正在运行的任何其他线程(尤其是 GUI 线程),我需要更改读取数据的策略取决于数据是否被压缩。这样就可以了,非常感谢!
为了将来参考,请查看 h5py 文档。它包含有关文件、组和数据集方法和属性的所有详细信息。 h5py docs 数据集参考在这里:h5py dataset ref以上是关于判断使用 h5py 创建的 HDF5 文件是不是被压缩的主要内容,如果未能解决你的问题,请参考以下文章
Pandas 无法读取使用 h5py 创建的 hdf5 文件