我正在使用 h5py 将来自数值工作的中间数据存储在 HDF5 文件中。我的项目处于版本控制之下,但这不适用于 HDF5 文件,因为每次重新运行生成 HDF5 文件的脚本时,即使其中的数据没有,二进制文件也会更改。
这是一个小例子来说明这一点:
In [1]: import h5py, numpy as np
In [2]: A = np.arange(5)
In [3]: f = h5py.File('test.h5', 'w'); f['A'] = A; f.close()
In [4]: !md5sum test.h5
7d27c258d94ed5d06736f6d2ba7c9433 test.h5
In [5]: f = h5py.File('test.h5', 'w'); f['A'] = A; f.close()
In [6]: !md5sum test.h5
c1db5806f1393f2095c88dbb7efeb7d3 test.h5
In [7]: # the file has changed but still contains the same data!
我查看了 HDF5 文件格式文档和 h5py 文档,但没有找到任何对我有帮助的东西。我的问题是:
即使我保存相同的数据,为什么文件会更改?
我怎样才能停止它的变化,所以版本控制只会在实际数字内容发生变化时看到文件的新版本?
谢谢