我做了一些研究,并使用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选项?我在任何地方都找不到这方面的信息。在
编辑:删除了文件(抱歉)
给定一个抛出此错误的hdf5文件,
Unable to open file (file is already open for write/SWMR write)
,其中您无法重新创建该文件,您可以使用命令行工具h5clear
清除文件一致性标志。在获得
h5clear
实用程序的一种方法是使用Anaconda Python发行版安装h5py(或pandas,不确定是谁负责)。在我的系统中,可执行文件位于环境bin目录中:anaconda3/envs/my_env/Library/bin/h5clear
。我希望您也可以通过从pip安装h5py来获得这个实用程序,尽管我还没有测试过这个工具。在如果安装了Anaconda,可以create an environment,安装包,然后从命令行使用以下命令运行
^{pr2}$h5clear
。在Windows上,我使用git-bash,但如果路径设置正确,也可以从Anaconda提示符,甚至Windows命令提示符下使用。在相关问题 更多 >
编程相关推荐