【问题标题】:Determine if a HDF5 file created with h5py is compressed or not判断使用 h5py 创建的 HDF5 文件是否被压缩
【发布时间】:2022-01-09 03:23:01
【问题描述】:

我有一个相当简单的问题:

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

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

【问题讨论】:

    标签: python compression hdf5 h5py


    【解决方案1】:

    压缩作为数据集属性处理。换句话说,有些可能会被压缩,有些可能不会。读取数据值时不需要知道数据集是否被压缩——它是自动处理的。

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

    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 线程),我需要更改读取数据的策略取决于数据是否被压缩。这样就可以了,非常感谢!
    • 为了将来参考,请查看 h5py 文档。它包含有关文件、组和数据集方法和属性的所有详细信息。 h5py docs 数据集参考在这里:h5py dataset ref
    猜你喜欢
    • 2014-12-24
    • 1970-01-01
    • 2022-10-19
    • 2017-11-07
    • 2013-03-31
    • 1970-01-01
    • 2016-02-11
    • 2016-09-24
    相关资源
    最近更新 更多