我正在使用h5py将实验数据存储在HDF5容器中。
在交互式会话中,我使用以下命令打开文件:
我也无法在HDFview或其他我尝试过的软件中打开该文件。
在交互式会话中,我使用以下命令打开文件:
measurement_data = h5py.File('example.hdf5', 'a')
然后我使用一些自编写的函数将数据写入文件(可能是几天实验中的许多GB数据)。在实验结束时,我通常会使用以下方式关闭文件:
measurement_data.close()
很不幸的是,有时会发生互动会话在我没有明确关闭文件的情况下结束(意外终止会话、停电、操作系统由于某些其他软件崩溃等)。这总是导致文件损坏和完整数据的丢失。当我尝试打开它时,会出现以下错误:
OSError: Unable to open file (File signature not found)
我也无法在HDFview或其他我尝试过的软件中打开该文件。
- 即使未明确关闭文件,是否有避免文件损坏的方法?我在这里读到使用with语句的方法,但当会话意外结束时,我不确定是否有帮助。
- 是否有一种方法可以恢复损坏文件中的数据?是否有可用的修复程序?
flush()
确实有帮助。即使您在此之后写入了未经过刷新的数据,最近一次刷新点之前的所有内容仍然可以访问。不知何故,当我一年前尝试时它并没有像预期的那样工作。 - erik