如何比较并检查两个二进制(h5)文件是否在数值上具有相同的内容

3

我正在尝试比较两个二进制文件的内容。我使用Python 3.6 filecomp比较两个目录中同名的文件。

results_dummy=filecmp.cmpfiles(dir1, dir2, common, shallow=True)

上面的代码适用于我在两个目录中都有的*.bin文件,但它不能用于h5文件。
当比较包含完全相同组/数据集和数值数据的两个hdf5文件时,filecmp.cmpfiles将它们视为不匹配。
有没有办法从Python脚本内部比较两个hdf5文件的内容,而不使用h5diff?
提前感谢。

1
你的HDF5文件是否二进制相同(逐字节)?filecmp只能比较原始文件内容 - 不能进行数据解释。 - randomir
@randomir cmp -b file1.h5 file2.h5 表明这两个文件不是二进制相等的。这两个文件具有相同的内容,因此差异应该与 hdf5 的内部格式有关。无论如何,检查这两个文件是否包含相同的内容是我唯一关心的事情。有没有办法从 Python 中检查这一点呢? - Heli
快速的谷歌搜索让我找到了这个GitHub项目。它使用h5py来加载两个文件并比较它们的内容。在类似的SO问题的答案中,提出了一个工具hdiff,但链接已经失效。此外,如果您知道h5diff,为什么不使用它(从Python)? - randomir
@randomir我不想使用hdiff,因为我试图避免用户必须安装hdf5/Tools API才能运行脚本。 - Heli
1个回答

1
我最终使用h5diff进行设置。脚本的用户需要安装hdf5/Tools才能运行该脚本。
谢谢你的回答。

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