【发布时间】:2015-09-26 01:45:02
【问题描述】:
我正在使用 h5py 将实验数据存储在 HDF5 容器中。
在交互式会话中,我使用以下命令打开文件:
measurement_data = h5py.File('example.hdf5', 'a')
然后我使用一些自写的函数将数据写入文件(几天的实验可能有很多 GB 的数据)。在实验结束时,我通常会使用关闭文件
measurement_data.close()
不幸的是,有时会发生交互会话结束而我没有明确关闭文件(意外终止会话、断电、由于某些其他软件导致操作系统崩溃)。这总是会导致文件损坏和完整数据丢失。当我尝试打开它时,我得到了错误:
OSError: Unable to open file (File signature not found)
我也无法在 HDFview 或我尝试的任何其他软件中打开文件。
- 有没有办法避免损坏的文件,即使它没有明确关闭?我已阅读有关使用 with 语句 here 的信息,但我不确定这是否会在会话意外结束时有所帮助。
- 我可以通过某种方式恢复损坏文件中的数据吗?有维修计划吗?
每次写入访问时总是打开和关闭文件对我来说听起来很不利,因为我不断地从许多不同的函数和线程写入数据。所以我对不同的解决方案会更满意。
【问题讨论】:
标签: python corruption h5py