如何解决使用 SFTP 传输时,H5 文件中的某些条目会损坏
我在服务器中有多个大型 H5 文件,我使用 SFTP 将这些文件复制到本地。我使用以下语法 get -r <path_to_file>/<file.h5>
。
当我尝试阅读某些条目时,比如说,
h5_obj = h5py.File(<file.h5>,'r')
data = h5_obj['Images'][407,...]
它返回以下错误信息
OSError: 无法读取数据(inflate() 失败)
快速搜索显示此消息与损坏的文件有关。请注意,可以在服务器上成功读取完全相同的数据样本。
解决方法
您是否比较过服务器和本地副本之间的文件大小?它们应该几乎相同。如果没有,请删除本地副本并重试。注意:HDF5 是一个二进制文件。确保使用适当的 sftp 标志来复制为二进制文件。
如果它们相似,则该文件可能具有外部链接。这些用于指向其他文件中的数据。您可以运行一些 HDF5 实用程序来检查文件架构和内容。它们是:
- ptdump:包含在 PyTables 包中的实用程序。它是一个命令行工具,用于查询 HDF 文件。
- h5dump:来自 HDF Group 的实用程序。它是另一个用于查询 HDF 文件的命令行工具。 (需要下载并安装 HDF5)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。