h5py清除文件一致性标志

2024-09-30 14:22:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我做了一些研究,并使用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写入)”

^{pr2}$

返回错误“OSError:无法打开文件(文件已打开进行写入(可以使用h5clear file清除文件一致性标志))”

现在我在想,h5py模块中是否实现了h5clear选项?我在任何地方都找不到这方面的信息。在

编辑:删除了文件(抱歉)


Tags: 模块文件工具数据视图错误latesthdf5
1条回答
网友
1楼 · 发布于 2024-09-30 14:22:04

给定一个抛出此错误的hdf5文件,Unable to open file (file is already open for write/SWMR write),其中您无法重新创建该文件,您可以使用命令行工具h5clear清除文件一致性标志。在

$> h5clear -s my_bad.h5

获得h5clear实用程序的一种方法是使用Anaconda Python发行版安装h5py(或pandas,不确定是谁负责)。在我的系统中,可执行文件位于环境bin目录中:anaconda3/envs/my_env/Library/bin/h5clear。我希望您也可以通过从pip安装h5py来获得这个实用程序,尽管我还没有测试过这个工具。在

如果安装了Anaconda,可以create an environment,安装包,然后从命令行使用以下命令运行h5clear。在Windows上,我使用git-bash,但如果路径设置正确,也可以从Anaconda提示符,甚至Windows命令提示符下使用。在

^{pr2}$

相关问题 更多 >