【发布时间】:2019-05-01 13:57:20
【问题描述】:
我做了一些研究,并使用 h5py 模块将结果存储在 HDF5 文件中。我使用 h5py 模块和 HDF5 组的 HDF 视图工具多次打开并读取数据。这一切都很好,直到有一天我的电脑在 HDF 视图中打开文件时崩溃了。
重启电脑后,我无法再打开文件。 HDF 视图工具显示一般错误:“打开文件时出错”
我在 h5py 中编写了文件,所以我决定尝试使用它来读取数据。该文件以 swmr 模式编写,libver='latest'。我尝试了以下方法:
with h5py.File(fpath, 'r', swmr=True, libver='latest') as f:
pass
返回错误“OSError: 无法打开文件(文件尚未打开以进行 SWMR 写入)”
with h5py.File(fpath, 'r') as f:
pass
返回错误“OSError: Unable to open file (file is already open for write (may use h5clear file to clear file contrasts flags))”
现在我想知道,在 h5py 模块中实现了 h5clear 选项了吗?我在任何地方都找不到有关此的任何信息。
编辑:删除文件(抱歉)
【问题讨论】:
-
关于 h5clear 选项,询问开发者是否已经实现。 h5py 用户论坛位于:groups.google.com/forum/#!forum/h5py
-
确实,您的文件可能已损坏。您是否尝试过任何批处理程序来读取它(来自 HDFGroup 的 h5dump,或 PyTables 模块提供的 ptdump)?
-
感谢您的回复,我在 HDF 论坛上发了一个帖子groups.google.com/forum/#!topic/h5py/zcyB2tNQ6Eo
-
感谢您的建议。我目前正在尝试弄清楚如何在 Visual Studio 中使用 HDF 工具,因为不幸的是我的编程经验目前仅限于 Python
-
h5clear命令未找到。我有hdf5 1.10.0-patch1。其他命令行工具如h5dump,h5repack工作正常。有什么方法可以使用可用的实用程序清除或重置标志? (Ubuntu Bionic Beaver 顺便说一句)