eri*_*rik 6 python corruption h5py
我正在使用 h5py 将实验数据存储在 HDF5 容器中。
在交互式会话中,我使用以下命令打开文件:
measurement_data = h5py.File('example.hdf5', 'a')
Run Code Online (Sandbox Code Playgroud)
然后我使用一些自己编写的函数将数据写入文件(可以是几天实验中的许多 GB 数据)。在实验结束时,我通常会使用
measurement_data.close()
Run Code Online (Sandbox Code Playgroud)
不幸的是,有时会发生交互式会话在没有我明确关闭文件的情况下结束(意外终止会话、断电、由于某些其他软件导致操作系统崩溃)。这总是会导致文件损坏和完整数据丢失。当我尝试打开它时,出现错误:
OSError: Unable to open file (File signature not found)
Run Code Online (Sandbox Code Playgroud)
我也无法在 HDFview 或我尝试过的任何其他软件中打开该文件。
每次写访问时总是打开和关闭文件对我来说听起来很不利,因为我不断地从许多不同的函数和线程写入数据。所以我会更满意不同的解决方案。
HDF5 设计人员知道损坏问题。他们正在通过添加 journalling在 1.10 版中解决这个问题。与此同时,您可以flush()定期调用以确保您的写入已被刷新,这应该可以最大限度地减少一些损害。您还可以尝试使用外部链接,这将允许您将数据片段存储在单独的文件中,但在您阅读它们时将它们链接到一个结构中。
| 归档时间: |
|
| 查看次数: |
5470 次 |
| 最近记录: |