使用h5py压缩现有文件

kro*_*man 6 python compression hdf5 h5py

我目前正在开发一个关于压缩HDF5数据集的项目,最近开始使用h5py.我遵循基本教程,能够在创建文件时打开,创建和压缩文件.但是,在压缩现有文件时这是不成功的(这是我工作的目的).

我尝试使用'r +'打开文件,然后压缩分块数据集,但文件大小保持不变.

有关使用什么命令的建议或我是否以错误的方式处理事情?

小智 5

HDF 组提供了一组工具来转换、显示、分析和编辑以及重新打包您的 HDF5 文件。

您可以使用h5repack实用程序压缩现有的 hdf5 文件。您还可以使用相同的实用程序更改块大小。

h5repack 可以从命令行使用。

h5repack file1 file2 //删除文件1的占用空间并保存为文件2。

h5repack -v -l CHUNK=1024 file1 file2 //将 1024 的分块应用到文件 1

h5repack -v -l CHUNK=1024 GZIP=5 file1 file2 //制作 1024 块并使用 GZIP 5 级压缩对其进行压缩

h5repack --help \获取可用的帮助文档

还提供详细的文档


Bit*_*ise 2

压缩在h5py中使用起来非常简单。查看 Wiki HowTo压缩指南。基本上,它会是这样的:

ds = myfile.create_dataset('ds', shape, dtype, compression='lzf')
Run Code Online (Sandbox Code Playgroud)

如何选择块大小来优化文件大小/访问也存在一些问题,请参阅我链接到的压缩指南。

我不记得默认情况下启用了哪种压缩(如果有)。

  • @kromegaman进一步说明 Bitwise 所说的,压缩和块大小以及其他一些属性是在创建_数据集_时设置的,并且之后无法更改。不同的数据集可以使用不同的压缩算法或块大小。另外,默认情况下不进行压缩。 (2认同)